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
2.6k
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
Translation API について 〜WWDC24〜
ryunakayama
0
79
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
1.6k
新卒1年目がプロジェクトを進めるときにコケたポイント
ryunakayama
1
1.7k
期限が近づいてきた!Privacy Manifests対応
ryunakayama
5
10k
新卒iOSエンジニアとしてやってきたこと
ryunakayama
0
1.7k
今年学んだ便利ツール_便利技
ryunakayama
0
1.7k
KMPを使ってみて感じた良いところ・ツラいところ
ryunakayama
0
1.9k
SwiftUIに適した新アーキテクチャの導入に挑む
ryunakayama
2
9.7k
Swiftでテスト時のみ『private』にアクセスする方法
ryunakayama
1
2.7k
Other Decks in Programming
See All in Programming
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
Google's Recipe for Scaling (Web) Security – LocoMocoSec 2024
lweichselbaum
0
170
DynamoDB コスト最適化っぽいことの基本 with Terraform
kuro_kurorrr
2
250
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
rvirus0817
6
1.4k
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
310
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
유연한 Composable 설계
l2hyunwoo
0
380
ドメイン駆動設計の実践
masuda220
PRO
17
5.2k
生成AIをkintoneに連携してみた
hideg
0
230
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Embracing the Ebb and Flow
colly
81
4.3k
Fireside Chat
paigeccino
25
2.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
The Invisible Customer
myddelton
117
13k
Documentation Writing (for coders)
carmenintech
63
4.2k
Adopting Sorbet at Scale
ufuk
71
8.8k
What's new in Ruby 2.0
geeforr
338
31k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Testing 201, or: Great Expectations
jmmastey
33
6.9k
It's Worth the Effort
3n
181
27k
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との比較 同じブランチから複数ディレクト リが作成されることを防ぐ
働くをもっと楽しく、創造的に