はじめに
Git stash は、変更をコミットせずに一時的に保存できる便利な機能です。このチュートリアルでは、スタッシュした変更を別のスタッシュに移動する方法を学び、Git のワークフローをより効果的に管理する方法を紹介します。
Git stash は、変更をコミットせずに一時的に保存できる便利な機能です。このチュートリアルでは、スタッシュした変更を別のスタッシュに移動する方法を学び、Git のワークフローをより効果的に管理する方法を紹介します。
Git Stash は、Git に備え付けられた便利な機能で、変更をコミットせずに一時的に保存できます。これは、別のブランチに切り替えたり、リモートリポジトリから最新の変更をプルしたりする際に、現在のブランチで行った作業を失いたくない場合に特に役立ちます。
以下のシチュエーションで Git Stash を使うことができます。
Git Stash を使うには、以下の手順に従います。
git stash
git stash apply
これにより、最新のスタッシュが現在のブランチに適用されます。Git Stash には、スタッシュした変更を管理するためのいくつかのコマンドが用意されています。
git stash list:作成したすべてのスタッシュを一覧表示します。git stash show:特定のスタッシュで行われた変更を表示します。git stash drop:一覧から特定のスタッシュを削除します。git stash clear:一覧からすべてのスタッシュを削除します。Git Stash の基本を理解することで、ローカル変更を効果的に管理し、作業を失うことなく異なるタスクやブランチ間を切り替えることができます。
時には、スタッシュした変更を別のブランチに移動したい場合があります。これは、いくつかの変更をスタッシュしておいた後、それらの変更が別のブランチに適用されるべきであることに気付いたときに便利です。以下がその方法です。
git stash
git checkout target-branch
git stash apply
これで、スタッシュした変更が対象のブランチに移動しました。
また、スタッシュした変更を複数のブランチに適用することもできます。いくつかの変更をいくつかのブランチに適用したい場合に便利です。
git stash
git checkout branch1
git stash apply
git checkout branch2
git stash apply
スタッシュした変更を別のブランチに適用する際にコンフリクトが発生した場合、手動で解決することができます。方法は以下の通りです。
git stash
git checkout target-branch
git stash apply
git add resolved-file1 resolved-file2
git stash apply --continue
ブランチ間でスタッシュした変更を移動させる方法を理解することで、作業フローを効果的に管理し、変更が正しい場所に適用されることを確認することができます。
変更をスタッシュするとき、Git は各スタッシュに一意の識別子を自動的に割り当てます。ただし、スタッシュをより分かりやすく追跡するために、独自の名前を付けることもできます。方法は以下の通りです。
git stash save "My feature changes"
その後、インデックスまたは割り当てたカスタム名でスタッシュを参照できます。
git stash apply stash@{2}
git stash apply "My feature changes"
Git Stash を使えば、スタッシュした変更から新しいブランチを作成することもできます。特定の一連の変更を独立して作業したい場合に便利です。方法は以下の通りです。
git stash branch new-feature
このコマンドは、new-feature という名前の新しいブランチを作成し、最新のスタッシュをそのブランチに適用します。
作業を進めるにつれて、スタッシュリストがすぐに混乱してしまうことがあります。スタッシュを整理するには、以下のコマンドを使えます。
git stash list ## すべてのスタッシュを一覧表示
git stash drop stash@{0} ## 最新のスタッシュを削除
git stash clear ## すべてのスタッシュを削除
また、古いスタッシュを自動的に削除するように Git を設定することもできます。
git config --global stash.autoStash true
git config --global stash.maxStashSize 10
これらの設定により、マージやリベースの前に自動的に変更をスタッシュし、リストに最大10個のスタッシュを保持します。
これらの実践的なスタッシュ管理技術をマスターすることで、Git のワークフローを整理して効率的に保ち、変更を簡単にアクセスして管理できるようになります。
このガイドを終えると、Git stash を十分に理解し、異なるスタッシュ間で効率的に変更を移動させることができるようになります。この知識は、クリーンで整理された Git リポジトリを維持するのに役立ち、共同作業、レビュー、およびプロジェクトのバージョン管理を行うのを容易にします。