🌲
モバイル開発でのレビューはgit worktreeと相性が良い
自分は普段iOSアプリの開発をしていて、その中でレビューを効率的にするためにgit worktreeを使っているのでその詳細を記録に残します。
前提
問題
普段、iOSアプリのレビューをする際に自分の作業を止めてレビューをする場合、
- 変更をstashして一時避難
- レビューするブランチにcheckout
- xcodegenで関連ファイルや依存をアップデート
- ビルドしたりして確認
- レビューを終える
- 元のブランチにcheckout
- stashした差分を戻す
- xcodegenで関連ファイルや依存をアップデート
のような流れでやることが多いです。
(もちろんlocalで動かさず差分を眺めるだけでレビューする場合も多い。)
この作業がめんどすぎるのでgit worktreeを使っています。
git worktree
こんな感じで記述すると、新しいフォルダを掘ってそこの配下で対象のブランチにcheckoutしてくれます。なので複数のブランチに並列でcheckoutすることができます。
git worktree add <作りたい場所> <ブランチ>
並列で複数のブランチにcheckoutすることができるので1~8の手順のうち、自分の作業ブランチ側で行なっていたような作業を行う必要がなくなりました。
同じようなことはローカルリポジトリを他の場所にも作ればgit worktreeを使わずとも達成できるのですが、リポジトリの管理にghqを使っている関係上無駄にそのエコシステムから外れた運用をしたくないです。なのでgit worktreeでリポジトリ配下に作る形で運用するのは今の自分の環境的にマッチしています。
デメリット
- よくある.envなどのgit管理していないような差分は共通化できないのでコピーする必要がある。
- 編集やビルドなどのためにxcodeで開く際はパスが違うので別途指定する必要がある。
Discussion