10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バージョンアップ作業時に役立つgit worktreeの使い方

Posted at

システムのバージョンアップや改修で「旧バージョン(A)と新バージョン(B)を同時に動かして比較したい」という場面は多いと思います。

そんなときに便利なのが git worktree です。

git worktree とは?

別フォルダに、別ブランチを同時にチェックアウトできる Git の仕組み です。

通常の Git は「1フォルダに1ブランチ」ですが、worktree を使うと複数ブランチを並列で扱えます。

■ 使い方

① メインプロジェクトへ移動

cd project-main

② バージョンA用の worktree を追加

git worktree add ../versionA-branch versionA-branch

③ バージョンB用の worktree を追加

git worktree add ../versionB-branch versionB-branch

④ フォルダ構成イメージ

/project-main      → main ブランチ
/versionA-branch     → versionA ブランチ
/versionB-branch     → versionB ブランチ

作業ディレクトリは分かれていますが、Git としては1つのリポジトリを共有しています。

⑤ 削除したいとき

git worktree remove project-verA

■ git worktree が便利な理由

1. フォルダコピーが不要

コピー運用だと .env が混ざったり、不要ファイルが残ったり危険ですが、
worktree は Git がクリーンにブランチを展開するので安全。

2. ブランチ切り替えが不要

別フォルダに同時に checkout されるため、
versionA と versionB を同時に開いて作業できます。

3. バージョン比較が爆速

旧バージョンのバグ調査 → 新バージョンへ反映
これを並列で進められるので効率が段違い。

4. Docker での同時起動も簡単

たとえば、

というように同時起動して比較できます。

■ 注意点(重要)

  • 同じブランチを2つの worktree に同時にチェックアウトはできない
  • worktree 側には .git フォルダは作られず、親と共有される
  • .env など環境依存ファイルはフォルダごとに用意が必要

■ まとめ

作業内容 コピー運用 worktree
フォルダ複製 必要 不要
2バージョン同時作業 面倒 簡単
破損リスク 高い 低い
Git管理 あいまい 明確
Docker 並列起動 手間 簡単

バージョンアップ作業や複数バージョン比較を行う際、git worktree は便利機能ですので一度触ってみるのはありかもしれないです!

参考記事

10
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?