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.8k
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
31
Health Kit × Foundation Models でAIコーチを作ってみた
ryunakayama
0
320
iOSの画面の状態のアレコレを調査してみた
ryunakayama
0
56
作文ツール(Writing Tools)をアプリから制御する
ryunakayama
0
37
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
270
「ジェン文字」をアプリ内で使ってみよう
ryunakayama
0
140
SwiftDataと連携したWidgetを作ってみた
ryunakayama
1
160
Swift Macroでメソッドの実行時間を計測できるようにしてみた
ryunakayama
1
210
Appleの審査担当の方とお話ししてみた!
ryunakayama
0
320
Other Decks in Programming
See All in Programming
Python札幌 LT資料
t3tra
7
1.1k
CSC307 Lecture 02
javiergs
PRO
1
740
Patterns of Patterns
denyspoltorak
0
420
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
750
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
230
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.5k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
14
3.6k
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.2k
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
37k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
520
Graviton と Nitro と私
maroon1st
0
160
Featured
See All Featured
Leo the Paperboy
mayatellez
1
1.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Amusing Abliteration
ianozsvald
0
82
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
880
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
74
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
410
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How to train your dragon (web standard)
notwaldorf
97
6.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
So, you think you're a good person
axbom
PRO
0
1.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
43
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との比較 同じブランチから複数ディレクト リが作成されることを防ぐ
働くをもっと楽しく、創造的に