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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryu-nakayama
October 13, 2023
Programming
0
4.9k
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
280
iOSアプリでフロントエンドと仲良くする
ryunakayama
0
90
「ジェン文字」使ってますか?
ryunakayama
0
36
Health Kit × Foundation Models でAIコーチを作ってみた
ryunakayama
0
320
iOSの画面の状態のアレコレを調査してみた
ryunakayama
0
62
作文ツール(Writing Tools)をアプリから制御する
ryunakayama
0
41
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
270
「ジェン文字」をアプリ内で使ってみよう
ryunakayama
0
160
SwiftDataと連携したWidgetを作ってみた
ryunakayama
1
170
Other Decks in Programming
See All in Programming
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
630
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
620
CSC307 Lecture 09
javiergs
PRO
1
840
Data-Centric Kaggle
isax1015
2
780
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
React Native × React Router v7 API通信の共通化で考えるべきこと
suguruooki
0
100
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
110
Featured
See All Featured
Believing is Seeing
oripsolob
1
59
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
170
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The agentic SEO stack - context over prompts
schlessera
0
650
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
150
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との比較 同じブランチから複数ディレクト リが作成されることを防ぐ
働くをもっと楽しく、創造的に