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 worktreeを使って複数ブランチを扱いやすくする
Search
Ryu-nakayama
October 13, 2023
Programming
0
4.4k
git worktreeを使って複数ブランチを扱いやすくする
2023/10/13 モバイルアプリ部を徹底解剖!DAU100万の『Chatwork』を支えるモバイルチームの現場とは? のLT資料になります
Ryu-nakayama
October 13, 2023
Tweet
Share
More Decks by Ryu-nakayama
See All by Ryu-nakayama
Health Kit × Foundation Models でAIコーチを作ってみた
ryunakayama
0
88
iOSの画面の状態のアレコレを調査してみた
ryunakayama
0
38
作文ツール(Writing Tools)をアプリから制御する
ryunakayama
0
33
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
230
「ジェン文字」をアプリ内で使ってみよう
ryunakayama
0
100
SwiftDataと連携したWidgetを作ってみた
ryunakayama
1
130
Swift Macroでメソッドの実行時間を計測できるようにしてみた
ryunakayama
1
190
Appleの審査担当の方とお話ししてみた!
ryunakayama
0
280
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
350
Other Decks in Programming
See All in Programming
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
140
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
200
Developer Joy - The New Paradigm
hollycummins
1
380
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
4
970
AI駆動で0→1をやって見えた光と伸びしろ
passion0102
1
880
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
480
CSC509 Lecture 07
javiergs
PRO
0
250
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
380
マンガアプリViewerの大画面対応を考える
kk__777
0
410
CSC305 Lecture 09
javiergs
PRO
0
320
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
120
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
170
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
For a Future-Friendly Web
brad_frost
180
10k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
GitHub's CSS Performance
jonrohan
1032
470k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Gamification - CAS2011
davidbonilla
81
5.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Transcript
Chatwork株式会社 モバイルアプリケーション開発部 中山 龍 2023年10月13日 git worktreeを使って 複数ブランチを扱いやすくする
自分のローカルのブランチ状況
develop 僕がiOS版Chatworkを開発する際のローカルのブランチ状況 3 1 作業用 2 レビュー用 3 モブプロ用 4
最新の開発状況 動作確認で使用 チケット作業 で使用 手元でコードを 見たいときに使用 ※iOSチームでは週に1度モブプロ会をしている
develop 僕がiOS版Chatworkを開発する際のローカルのブランチ状況 4 1 作業用 2 レビュー用 3 モブプロ用 4
最新の開発状況 動作確認で使用 チケット作業 で使用 手元でコードを 見たいときに使用 複数ブランチを扱っている
• stashしてブランチを切り替える • ブランチごとに新しくcloneする 複数ブランチを扱う場合 どうブランチを切り替えるか?
• stashしてブランチを切り替える • ブランチごとに新しくcloneする 複数ブランチを扱う場合 どうブランチを切り替えるか? git worktree
git worktreeとは
git worktreeのイメージ 1つのリポジトリに対して ブランチごとに作業ディレクトリ を作成するイメージ 8 リポジトリ ブランチ1 のワークツリー ブランチ2
のワークツリー ブランチごとに ディレクトリ作成
git worktreeで実現できること 9 git stashをして切り替える必要がなくなる 複数ヶ所で同じブランチをいじってしまうのを防げる 各ブランチが独立したディレクトリ(ワークツリー)として存在する → ディレクトリを移動するだけでブランチが切り替わる clone場合、同じブランチから複数cloneできてしまい、複数のディレクトリから同じブラ
ンチをいじってしまうことが発生する git worktreeなら同じブランチから複数のディレクトリを作成できない → 複数のディレクトリで同じブランチをいじってしまうのを防げる
git worktreeで実現できること 10 git stashをして切り替える必要がなくなる 複数ヶ所で同じブランチをいじってしまうのを防げる 各ブランチが独立したディレクトリ(ワークツリー)として存在する → ディレクトリを移動するだけでブランチが切り替わる clone場合、同じブランチから複数cloneできてしまい、複数のディレクトリから同じブラ
ンチをいじってしまうことが発生する git worktreeなら同じブランチから複数のディレクトリを作成できない → 複数のディレクトリで同じブランチをいじってしまうのを防げる 複数ブランチを扱いやすい!
チケットをやる際のgit worktreeの使用例
0: 最初の状況 12 project hoge project hoge ディレクトリの状況 • 『project』というディレクトリがある
◦ developをcloneしたもの • 『Ticket1』というチケットをやりたい • ブランチ名は『branch-1』とする develop ブランチの状況 develop
1: ブランチを作成する 13 project hoge project hoge ディレクトリの状況 • 任意の方法でブランチを作成する
◦ 今回は『branch-1』という名前とする ◦ この際にbranch-1には移動しない develop branch-1 ブランチの状況 develop
2: ワークツリーを作成する 14 project hoge project hoge branch-1 project hoge
Ticket1 project hoge 実行前 実行後 hoge/project $ git worktree add ../Ticket1 branch-1 • ワークツリーを作成するコマンドを実行する ◦ 『Ticket1』というディレクトリが作成される develop develop branch-1
3: 作成したディレクトリを使用する 15 project hoge project hoge branch-1 project hoge
Ticket1 project hoge 実行前 実行後 branch-1 develop develop • 『Ticket1』ディレクトリを使用する ◦ そうすることで、projectのブランチを切り替えずに、 『branch-1』を操作できる
用途に合わせてブランチごとにワークツリーを作成する ↓ ディレクトリを変えるだけでブランチを移動できる
まとめ
まとめ 18 git worktreeを使うと ディレクトリの移動でブランチを切り 替えることができる 他の方法との比較 ブランチ切り替えと比較 切り替え時にstashする必要が ない
cloneとの比較 同じブランチから複数ディレクト リが作成されることを防ぐ
働くをもっと楽しく、創造的に