Git Stash 固有のファイル
このチュートリアルでは、Git 内の特定のファイルのみの変更を隠蔽する方法について説明します。
Git では、作業ツリーにいくつかの変更を加えると、ローカルリポジトリにステージングされるか、まだステージングされていない変更がいくつかある可能性があります。
これらの変更をしばらく保存し、これらの変更が行われる前にファイルのバージョンで作業したい場合があります。
したがって、このような目的のために、git stash push
コマンドを使用して、後で使用するために変更を(つまり)隠しておくことができます。
繰り返しになりますが、後で、git stash pop
コマンドを使用してこれらの変更を元に戻すことができます。
リポジトリの作業ツリーで変更されたすべてのファイルではなく、特定のファイルに対してのみ行われた変更を保存または保存する必要がある場合があります。
これを例を挙げて説明します。
git stash push
を使用して Git 内の特定のファイルの変更を隠す
リポジトリの作業ツリーに example.txt
という名前のファイルがあるとします。ファイルにいくつかの変更を加えました。今度は、それらの変更を Git にしばらく隠しておきたいと思います。
作業ツリー内の他のファイルにも変更がある可能性がありますが、それらを隠したくありません。
Git に特定のファイルを隠しておくコマンドの構文は git stash push <file>
です。
したがって、ファイル example.txt
に対してのみ行われた変更を隠蔽するために、次のようにします。
$ git stash push example.txt
Saved working directory and index state On main: example.txt
HEAD is now at 8b3560b minor changes
したがって、ファイル example.txt
の変更のみを隠しておきます。
これで、次のように、stash エントリを一覧表示し、stash エントリを表示できます。
$ git stash list
stash@{0}: On main: example.txt
次のように、隠しておきながら特定のメッセージを追加することもできます。
$ git stash push -m "my example stash" example.txt
Saved working directory and index state On main: my example stash example.txt
HEAD is now at 8b3560b minor changes
再び次のようにリストすることができます。
$ git stash list
stash@{0}: On main: my example stash example.txt
これとは別に、Git で目的のファイルの特定の変更をインタラクティブに隠しておくこともできます。
このためには、オプション --patch または-p
を git stash push
コマンドと一緒に使用する必要があります。
したがって、この例でこれを行うには、次のようにします。
$ git stash push --patch
diff --git a/example.txt
index 7ab5ca4..a281fc6 100644
--- a/example.txt
+++ b/example.txt
@@ -4,9 +4,11 @@
some text
+new text
some other text
some text again
+second new text
Stash this hunk [y,n,q,a,d,/,s,e,?]? y
Saved working directory and index state WIP on main: 8b3560b minor changes
git stash
コマンドは、リポジトリの作業ツリー内のすべての変更を繰り返し処理し、stash への変更を選択するように求めます。
ここでは、Stash this hunk [y,n,q,a,d,/,s,e,?]?
という質問のほかに、オプション y
を入力しました。example.txt
ファイルの変更を隠します。
オプション n
を入力して、ファイルの現在の hunk
(変更)を隠さないようにすることができます。
git stash
と利用可能なオプションの詳細については、このサイトを参照してください。git stash-変更の保存。