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
2025-08-06 社内勉強会 Gitを知る頃 / When You First Know Git
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kentaro Abe
August 06, 2025
Programming
0
51
2025-08-06 社内勉強会 Gitを知る頃 / When You First Know Git
Kentaro Abe
August 06, 2025
Tweet
Share
More Decks by Kentaro Abe
See All by Kentaro Abe
2025-08-27 社内勉強会 ソフトウェアテストの基礎 / Basics of Software Testing
abekem
0
18
2025-07-02 社内勉強会 SQLに親しむ / Getting to Know SQL
abekem
0
53
2025-05-28 社内勉強会 SOLID原則ではじめるよりよい設計の第一歩 / The First Step to Better Software Design with SOLID Principles
abekem
0
88
2025-04-23 社内勉強会 デザインパターン概論 / Overview of Design Patterns
abekem
0
46
2025-03-26 社内勉強会 オブジェクト指向入門 第二部 / Introduction to Object-Oriented Part2
abekem
0
35
SAP Event Meshで始めるイベント・ドリブン・アーキテクチャ / Getting Started with Event-Driven Architecture Using SAP Event Mesh
abekem
0
150
2025-02-27 社内勉強会 オブジェクト指向入門 / Introduction to Object-Oriented
abekem
0
100
Other Decks in Programming
See All in Programming
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
940
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
20
7.1k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1k
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
450
CSC307 Lecture 04
javiergs
PRO
0
660
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
ThorVG Viewer In VS Code
nors
0
770
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
Data-Centric Kaggle
isax1015
2
770
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
680
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
So, you think you're a good person
axbom
PRO
2
1.9k
Why Our Code Smells
bkeepers
PRO
340
58k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Crafting Experiences
bethany
1
48
HDC tutorial
michielstock
1
370
Transcript
2025/08/06 社内勉強会 1 Gitを知る頃
2 • チーム開発で避けては通れないGit ◦ Agentic Codingにも重要 • Gitはともだち こわくないよ • 基本的な操作、マージと競合の解決などのユースケースをTortoiseGitを
使う前提で説明 • Gitを使って安全に共同作業ができるようになろう What is it? Claude Code 使おうぜって話 - toridori 社エンジニアの weekly meeting にて
3 Gitの概要
4 • ファイルの変更履歴を管理するバージョン管理システム(VCS) • いつ、誰が、どんな変更をしたかわかる! Gitとは よくある人力バージョン管理が不要になる • ファイル名の日付を更新する •
修正箇所の前後にコメントを入れる file_20250731.txt file_20250806.txt file_new.txt file_new_2.txt // 20250806 ここから 〜何らかの修正〜 // 20250806 ここまで Hello, World! 2025/08/04 Aさん Hello, Git! 2025/08/05 Bさん Hello, Git! Happy coding 2025/08/05 Aさん
5 • 分散型バージョン管理システム • 複数人で共有するリモートリポジトリ • 個人が作業するローカルリポジトリ • コミットにより変更履歴を追加 •
ブランチで変更履歴を分岐 • プッシュ/プルでリモートとローカルの リポジトリを同期 Gitの仕組み プッシュ プル リモートリポジトリ ローカルリポジトリ ローカルリポジトリ ファイル コミット ブランチ
6 基本操作
7 • リモートリポジトリをローカルに複製する • 初回のみ実施する • 特にオプションを指定しない場合、 リモートのデフォルトブランチのみコピー クローン リモート
ローカル リモートリポジトリ ローカルリポジトリ main main
8 リモートリポジトリのURL クローン先のフォルダ
9
10 • ローカルリポジトリに変更履歴を追加する • コミットがGit操作の根底にある ◦ ある程度小さく、意味のある単位に分けるのが吉 • ローカルにしか反映されない ◦
気軽にできる コミット リモート ローカル main main
11
12
13 ログ・差分表示 コミット済みの変更履歴を表示
14 1. クローンする 2. name.txt ファイルに自分の名前を書いてコミット 3. 差分を眺める 練習 クローン→コミット
リモート ローカル main main
15 ブランチ・マージ・競合の解決
16 • ブランチによって履歴を分岐できる • 個人の作業用としても有用 • リモートリポジトリにはまだ存在しないため、プッシュのみ可能 ローカルブランチの作成 リモート ローカル
your-branch main main
17
18
19 • ローカルブランチの履歴をリモートブランチに反映する • 基本的には、ローカルで表示中のブランチを反映 プッシュ ローカル リモート your-branch main
your-branch main リモートリポジトリ ローカルリポジトリ
20
21
22 1. mainブランチから新規ブランチを作成 他の人と被らないように、ブランチ名に名前を入れてください 例)develop-abe-kentaro 2. 作成したブランチをプッシュしてみる 3. ログを眺める 練習
ブランチ作成 →プッシュ ローカル リモート your-branch main your-branch main
• リモートブランチをローカルに複製する • リモートと同期(プッシュ/プル)が可能 23 リモートブランチの チェックアウト ローカル リモート remote-branch
remote-branch
24
25
26 • 任意の二つのブランチを統合する • 自分が今いるブランチに対して、別のブランチの差分を取り込む • プッシュしない限りは、ローカルリポジトリ内で完結する マージ ローカル リモート
your-branch remote-branch
27
28
29 1. for-mergeブランチをチェックアウト 2. 先ほど作成した、develop-your-branchに切り替え 3. for-mergeブランチをマージ 4. ログを眺める 練習
チェックアウト →マージ ローカル リモート your-branch remote-branch remote-branch
30 • マージするとき、通常はGitが変更を判断して自動で適用される • 変更箇所が被っていると、適用する変更を手動で選択する必要がある • 競合が発生すると、ローカルリポジトリは「マージ中」状態になる ◦ 競合を解決してコミットするか、マージを中止するまで続く 競合の解決
31
32
33 解決が大変な競合: • 変更の範囲が広い • 他人の変更が混ざっている ◦ 自分が把握していない変更がある 上記を起こさないようにするのがコツ 競合解決のコツ
34 つまり、 • 普段からローカルブランチを切って作業する ◦ 自分の変更だけに集中すればよい状態 • こまめにマージする ◦ 一度に変更する範囲が広くならないうちにマージする
• 後述するリベースが有効 競合解決のコツ
35 1. for-confictブランチをチェックアウト 2. develop-your-branchに切り替え 3. for-conflictブランチをマージ →競合発生 4. 解決してコミット
5. ログを眺める 練習 競合の解決
36 もっと便利に使う
37 1. コミットダイアログで ファイルを「コミット後に復元」 でマーク 2. 差分ツールで不要な変更を戻す 3. コミット 部分的にコミット
38 • コミットしていない変更を一時的に退避する めちゃめちゃ便利 特にプル マージの前後 スタッシュ
39 • ローカルブランチを任意の履歴に戻す リセット Hello, World! 2025/08/04 Aさん Hello, Git!
2025/08/05 Bさん Hello, Git! Happy coding 2025/08/05 Aさん
40 今のままではmainでプルできないので、コミットを取り消してみる 1. mainブランチをチェックアウトして、プル →エラー(最初にローカルブランチを作る前にコミットしたため) 2. 最初のコミットをリセット a. origin/mainと同じコミットにリセットする 3.
変更をスタッシュに退避してプル →成功 リセット→スタッシュ→プル→コミットはよくやる 練習 リセット→スタッシュ →プル 下線は別の人がmainに プッシュしていた場合の話
41 • 今いるブランチの起点を別ブランチに変更する ◦ 特殊なマージ Bにいる状態で、Aにリベース ≒ Aにいる状態で、Bをマージ リベース A
B B A A B マージ リベース 結果は同じ
42
43 1. mainから新しいブランチを作成 例)for-rebase-abe-kentaro 2. name.txt ファイルに自分の名前を書いてコミット 3. for-mergeにリベース 4.
ログを眺める develop-your-nameブランチのマージ履歴とは 違ったログになってるはず ちなみに、リベースでできることは多岐に渡るので調べてみてね 練習 リベース
44 • 各種コマンドと便利な使い方を紹介した • 今回はTortoiseGitを使う前提で話した ◦ 他のツールやGit本体もぜひ学んでください • 安全に共同作業しよう! まとめ