modest violet

modest violet

開発者としてのあれこれや、日々の雑記など

your future hasn't written yet. no one's has.
by Emmett Lathrop "Doc" Brown

SVNユーザー必見!先輩社員も唸る隠れたGitの便利技

Gitはバージョン管理ツールとして広く利用されていますが、その中でもあまり知られていない便利な機能があります。今回は「Git Worktree(ギット ワークツリー)」に焦点を当てて、これを使った効果的な開発手法について解説します。

Gitとは

Gitは分散型バージョン管理システムであり、複数の開発者が同時にコードを編集でき、変更履歴を管理できる特長があります。リモートリポジトリとローカルリポジトリの概念があり、変更が競合することなく統合できるのが大きなメリットです。

Git Worktreeとは何か

Git WorktreeはGitの機能の一つで、複数のブランチを同時に作業できるようにするものです。通常、特定のブランチでの作業が終わったら、別のブランチに移動して新しい作業を開始する必要がありますが、Worktreeを使うことで同じリポジトリ内で複数のブランチに対応することができます。

なぜGit Worktreeが便利か

1. 同時に複数のブランチで作業ができる

通常、異なるブランチでの作業は切り替えが必要ですが、Git Worktreeを使えば同時に複数のブランチでの作業が可能です。例えば、メインブランチの変更中にどうしても過去ブランチを修正しないといけない。でも、今開発中のコードをまだコミットやスタッシュしたくない!などです。(スタッシュしたくない、の意味は分からないけど。。。)これにより、複雑な作業フローがスムーズに進みます。

2. 別のディレクトリで作業ができる

通常、Gitはブランチを切り替えると同じフォルダーのデータが変わります。この辺りはSVNを触っていると違和感ですね。Git Worktreeを使用することで、SVNのように異なるディレクトリで作業が可能です。各ワークツリーは元のリポジトリとは独立しており、同時に複数のブランチでの変更を行う際に作業ディレクトリが混在する心配がありません。

Git Worktreeの基本的な使い方

  1. ワークツリーの追加
   git worktree add <path> <branch>

<path>は新しいワークツリーのパス、<branch>は切り替えたいブランチです。

  1. ワークツリーの削除

削除したいWorktreeのフォルダを物理削除する。その後に下記コマンドを実行します。

   git worktree prune
  1. ワークツリーの一覧表示
   git worktree list

現在のワークツリーの一覧が表示されます。

まとめ

Git Worktreeは、開発者がより効果的に複数のブランチでの作業を行うためのノウハウです。Gitのパワフルな機能を活かして、よりスムーズな開発プロセスを構築しましょう。