Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
演習:Gitの応用操作 / 05-git-advanced
Search
kaityo256
PRO
March 04, 2026
Education
290
1
Share
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
March 04, 2026
More Decks by kaityo256
See All by kaityo256
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
6
1.1k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
この講義について / 00-setup
kaityo256
PRO
2
360
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
2
270
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
1
480
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
1
310
バージョン管理とは / 01-a-vcs
kaityo256
PRO
1
320
Gitの仕組みと用語 / 01-b-term
kaityo256
PRO
1
350
計算物理におけるGitの使い方 / 01-c-compphys
kaityo256
PRO
2
610
Other Decks in Education
See All in Education
Implicit and Cross-Device Interaction - Lecture 10 - Next Generation User Interfaces (4018166FNR)
signer
PRO
2
2.2k
Pen-based Interaction - Lecture 4 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
2.3k
From Participation to Outcomes
territorium
PRO
0
450
SSH_handshake_easy_explain
kenbo
0
970
LinkedIn
matleenalaakso
0
4.1k
0506
cbtlibrary
0
130
Managing Complexity: India’s Semiconductor Ambitions & New Industrial Policy
vyadav
0
140
OSINT入門-CTF for GIRLS_SECCON14電脳会議
nomizone
1
1.4k
「機械学習と因果推論」入門 ③ 漸近効率な推定量と二重機械学習
masakat0
0
590
Science Tokyo国際卓越研究大学計画_202604
sciencetokyo
PRO
0
2.4k
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
signer
PRO
1
3k
2026年度春学期 統計学 第2回 統計資料の収集と読み方 (2026. 4. 16)
akiraasano
PRO
0
140
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
The Language of Interfaces
destraynor
162
26k
Accessibility Awareness
sabderemane
1
110
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
320
Evolving SEO for Evolving Search Engines
ryanjones
0
190
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
740
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
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^