Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
演習:Gitの応用操作 / 05-git-advanced
Search
kaityo256
PRO
March 04, 2026
Education
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
March 04, 2026
More Decks by kaityo256
See All by kaityo256
生成AIとの付き合い方/ How to work with AI
kaityo256
PRO
3
820
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
280
What is XAI?
kaityo256
PRO
0
210
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
7
1.9k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
6.1k
この講義について / 00-setup
kaityo256
PRO
2
550
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
2
490
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
1
740
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
1
550
Other Decks in Education
See All in Education
1007
cbtlibrary
0
210
本格化するOSSベースのソフトウェア駆動型開発とセキュリティ技術最前線
lfj
PRO
0
100
Invest Early, Build Together
rashwhitman
0
480
AWS Academy プログラムのご紹介
hiragahh
0
110
Tema 1. El relieve de España: Formación y características
juanmartin2026
0
39k
エビデンスベースト英語教育入門:エビデンスは科学的知見(だけ)ではない,制度だ!
terasawat
0
220
DRONEGEOGRAFÍA: INNOVACIÓN DIDÁCTICA Y FOTOGRAMETRÍA 3D PARA LA COHESIÓN TERRITORIAL Y LA CIUDADANÍA ACTIVA
juanmartin2026
0
25k
セキュリティ担当がいない中小医療機関を院外のRISSはどう支えるべきか / How External RISS Can Help Small Medical Institutions
eller86
1
220
AIがコードを書く時代に、何を教えるのか / What Should We Teach in the Age of AI-Generated Code?
ichiroc
1
600
2026年度秋学期 統計学 第1回 イントロダクション ー 統計的なものの見方・考え方について (2026. 9. 29)
akiraasano
PRO
0
250
FA26 CLU MS Clinical Psychology New Student Orientation
jdbedics
0
180
aini school小中等部説明会資料
ainischool
0
170
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
It's Worth the Effort
3n
188
29k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
570
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Facilitating Awesome Meetings
lara
57
7.2k
How to Ace a Technical Interview
jacobian
280
24k
The SEO Collaboration Effect
kristinabergwall1
1
590
Ruling the World: When Life Gets Gamed
codingconduct
0
400
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Transcript
1 36 演習:Gitの応用操作 慶應義塾大学理工学部物理情報工学科 渡辺 2026年3月9日 計算物理春の学校2026「計算物理屋のためのGit/GitHub入門」
2 36 今回の目標 • git amendによりコミットが変更されることを確認する • git mergeの衝突を解決する •
git rebaseにより歴史を改変する • git rebaseの衝突を解決する • git bisectを使ってみる
3 36 課題1 – Step 1 リポジトリのクローン github cd cd
github git clone https://github.com/cpss2026-git/amend-sample.git cd amend-sample github amend-sample ホームディレクトリ Git管理された ディレクトリ ここがカレントディレクトリに
4 36 課題1 – Step 2 git log --oneline initial
commit updates README.md updates README.md updaets README.md main HEAD 歴史の確認
5 36 課題1 – Step 3 コミットの保存 initial commit updates
README.md updates README.md updaets README.md main HEAD original_main git branch original_main 現在のコミットに別名をつけておく
6 36 課題1 – Step 4 コミットメッセージの修正 git commit --amend
-m "updates README.md" initial commit updates README.md updates README.md updaets README.md main HEAD original_main updates README.md
7 36 課題1 – Step 5 git log --oneline 歴史の確認
initial commit updates README.md updates README.md updates README.md main HEAD 修正されていることを確認
8 36 課題1 – Step 6 git log --all --graph
--oneline 歴史が分岐したことを確認 initial commit updates README.md updates README.md updaets README.md main HEAD original_main updates README.md
9 36 課題2 – Step 1 リポジトリのクローン cd cd github
git clone https://github.com/cpss2026-git/merge-sample.git cd merge-sample github merge-sample ここがカレントディレクトリに
10 36 課題2 – Step 2 ブランチの作成 git branch knock
origin/knock main HEAD knock ブランチの確認 git branch -vva main HEAD origin/knock origin/knock origin/knockの指すコミットに knockブランチを作成
11 36 課題2 – Step 3 差分確認 main HEAD knock
git diff knock poetry.txt poetry.txt コミット間を比較 ここに差分を検出
12 36 課題2 – Step 4 マージ main HEAD knock
衝突 git merge knock マージの中断 git merge --abort main HEAD knock このプロセスでpoetry.txtが どのように変化したか調べる
13 36 課題2 – Step 5 マージ git merge knock
main HEAD knock 衝突 衝突の解決とコミット git add poetry.txt git commit -m "knock" potery.txtをエディタで修正
14 36 課題2 – Step 6 main HEAD knock git
log --all --graph --oneline マージされた「歴史」を確認
15 36 課題3 – Step 1 リポジトリのクローン cd cd github
git clone https://github.com/cpss2026-git/rebase-history-sample.git cd rebase-history-sample github rebase-history-sample ここがカレントディレクトリに
16 36 課題3 – Step 2 二人が目を覚ます アイスがまだある アイスが消えた ボブが登校
歴史の確認 git log --oneline
17 36 課題3 – Step 3 ブランチの作成 git branch start
origin/start 二人が目を覚ます アイスがまだある アイスが消えた ボブが登校 main HEAD start 歴史改変の起点にする
18 36 課題3 – Step 4 歴史改変 git rebase -i
start
19 36 課題3 – Step 5 改変された歴史の確認 git log --oneline
二人が目を覚ます アイスがまだある アイスが消えた ボブが登校
20 36 課題4 – Step 1 リポジトリのクローン cd cd github
git clone https://github.com/cpss2026-git/rebase-conflict-sample.git cd rebase-conflict-sample github rebase-conflict-sample ここがカレントディレクトリに
21 36 課題4 – Step 2 main HEAD branch origin/branch
ブランチの準備 git switch -c branch origin/branch origin/branchの指すコミットにbranchというブランチを作成し、 カレントブランチをそこへ移動
22 36 課題4 – Step 3 歴史の確認 git log --all
--graph --oneline main HEAD branch m1 m2 m3 f1 f2 f3
23 36 課題4 – Step 4 リベースの実行 git rebase main
main HEAD branch
24 36 課題4 – Step 5 main m1 m2 m3
f1 f2 f3 f1’ f2’ f3’ 状態の確認 git status HEAD HEADは「最後にリベースがうまくいったコミット」を指している (detached HEAD)
25 36 課題4 – Step 6 main m1 m2 m3
f1 f2 f3 f1’ f2’ f3’ HEAD エディタで衝突状態にあるファイル「text1.txt」を修正し、保存する
26 36 課題4 – Step 7 解決をGitに伝える git add text1.txt
git commit -m "f2" main m1 m2 m3 f1 f2 f3 f1’ f2’ f3’ HEAD Gitが自動で作ることができなかった このコミットを手動で作った
27 36 課題4 – Step 8 リベースの続行 git rebase --continue
main m1 m2 m3 f1’ f2’ f3’ HEAD branch リベースが最後まで実行され、detached HEAD状態が解消される
28 36 課題4 – Step 9 歴史の確認 git log --oneline
--graph main m1 m2 m3 f1’ f2’ f3’ HEAD branch もともと分岐していた歴史が一本道になり、 mainからbranchへfast-forwardマージが可能になった
29 36 課題5 Step 1 リポジトリのクローン cd cd github git
clone https://github.com/cpss2026-git/bisect-sample.git cd bisect-sample github bisect-sample ここがカレントディレクトリに
30 36 課題5 Step 2 $ ./evenodd.sh 1 odd $
./evenodd.sh 2 even evenodd.sh 与えられた整数が偶数か奇数かを判定するコード 想定する動作 実際の出力を確認し、バグがあることを確認
31 36 課題5 Step 3 main origin/root HEAD branch git
switch root origin/rootからrootブランチを作成し、カレントブランチをrootに変更
32 36 課題5 Step 4 $ ./evenodd.sh 1 odd $
./evenodd.sh 2 even 動作が正しいことを確認 カレントブランチをmainに戻す git switch main main HEAD
33 36 課題5 Step 5-7 git bisect start main root
git bisectの実行 はじめてバグが入ったコミット このタイミングでバグ挿入 Good Bad
34 36 課題5 Step 8 bug git branch bug コミットハッシュ
バグが入った直後のコミットにブランチを付与 git bisect reset git bisect モードを抜ける
35 36 課題5 Step 9 git bisect start main root
git bisect run ./test.sh スクリプトを用いた自動二分探索 test.sh evenodd.shをテストし 動作が正しければ終了コード0を 正しくなければ1を 返すテストスクリプト test.shを利用して自動で二分探索を実施
36 36 課題5 Step 10 bug git switch bug バグが初めて入ったコミットにスイッチ
この二つのコミットの差分を調べる git diff HEAD^