Git Stash 固有のファイル

Azhar Bashir Khan 2022年2月6日
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 または-pgit 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-変更の保存

関連記事 - Git Stash