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.1k
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
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
1.3k
新卒1年目がプロジェクトを進めるときにコケたポイント
ryunakayama
1
1.4k
期限が近づいてきた!Privacy Manifests対応
ryunakayama
5
8.8k
新卒iOSエンジニアとしてやってきたこと
ryunakayama
0
1.4k
今年学んだ便利ツール_便利技
ryunakayama
0
1.4k
KMPを使ってみて感じた良いところ・ツラいところ
ryunakayama
0
1.6k
SwiftUIに適した新アーキテクチャの導入に挑む
ryunakayama
2
8.9k
Swiftでテスト時のみ『private』にアクセスする方法
ryunakayama
1
2.2k
Other Decks in Programming
See All in Programming
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.9k
Escolhendo (ou não) o melhor ORM para o seu projeto
andreiacsilva
1
160
Good first issues of TypeProf
mame
1
470
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
Powerfully Typed TypeScript
euxn23
3
1.4k
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
620
Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
290
TypeScriptから始める VR生活
tamagokakeg
2
110
Documentation testsの恩恵 / Documentation testing benefits
ssssota
1
550
Three ways to use AI on Android: The Good, the Bad and the Ugly
marxallski
0
120
AmperとFleetを使ったAndroidアプリ
yoppie
0
300
mb_trim関数を作りました
youkidearitai
PRO
1
110
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Thoughts on Productivity
jonyablonski
60
3.9k
BBQ
matthewcrist
80
8.8k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
A Tale of Four Properties
chriscoyier
153
22k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
Navigating Team Friction
lara
179
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Build your cross-platform service in a week with App Engine
jlugia
226
17k
How to name files
jennybc
65
94k
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との比較 同じブランチから複数ディレクト リが作成されることを防ぐ
働くをもっと楽しく、創造的に