Git でのファイル名の変更を隠す

Azhar Bashir Khan 2023年1月3日
Git でのファイル名の変更を隠す

このチュートリアルでは、Git でファイルの変更を名前で隠しておく方法を紹介します。

Git では、変更をしばらく保存して、これらの変更が行われる前にファイルのバージョンを処理したい場合があります。

git stash push コマンドを使用して変更を隠し、後で使用できるように保存することができます。

繰り返しになりますが、後で git stash pop コマンドを使用してこれらの変更を元に戻すことができます。

使いやすいように、stash エントリを名前とともに保存したい場合があります。stash エントリの名前を使用して、stash リストでそれを確認し、その名前を使用して変更を取得することをお勧めします。

これを例を挙げて説明します。

git stash push を使用してファイルの変更を Git の名前で隠す

Git リポジトリの main ブランチに sample.txt という名前のファイルがあるとします。ファイルにローカルで変更を加えた可能性があります。

リポジトリの状態は次のように確認できます。

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

したがって、ファイル sample.txt にコミットする必要のある変更がいくつかあることがわかります。

ここで、これらの変更をコミットする代わりに、後で簡単に取得できるように、これらの変更を名前で隠しておくことをお勧めします。

変更を名前で隠蔽するための git stash push コマンドの構文は git stash push -m <stash_name> です。

ここで、ファイル sample.txt の変更を次の名前で隠しておきます。

$ git stash push -m "my_stash"
Saved working directory and index state On master: my_stash

スタッシュリストに指定されたスタッシュ名が表示されます。

$ git stash list
stash@{0}: On master: my_stash

したがって、スタッシュリストでは、指定されたスタッシュ名を持つスタッシュエントリを確認できます。

次のように、作業ツリーの変更を再度確認します。

$ git status
On branch main
nothing to commit, working tree clean

スタッシングを行ったので、Git は新しい変更を示していません。

必要に応じて、作成した stash エントリに付けられた名前を使用して、stash ストアから変更を取得できます。

git stash apply コマンドを使用して、変更を作業ツリーに戻す必要があります。

名前で stash エントリを取得し、作業ツリーに変更を適用するコマンド git stash apply の構文は、git stash apply stash^{/<stash_name>} です。

目的のスタッシュエントリを取得するために、スタッシュ名の正規表現を使用していることに注意してください。

したがって、my_stash という名前の stash エントリを取得するには、次のようにする必要があります。

$ git stash apply stash^{/my_stash}
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

これで、次のように、スタッシュから取得した作業ツリーに適用された変更を確認できます。

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

git stash pop コマンドとは異なり、git stash apply コマンドは、隠し状態(つまり)の隠しエントリを隠しリストから削除しません。現在の作業ツリーの状態の上に、指定された stash エントリのみを適用します。

したがって、スタッシュリストのスタッシュエントリを引き続き表示できます。

$ git stash list
stash@{0}: On master: my_stash

スタッシュリストからスタッシュエントリを削除できます。

次のようにコマンドを実行する必要があります。

$ git stash clear
注意
このコマンドはすべての stash エントリを削除するため、注意して使用してください。

この場合のように、特定のエントリのみを削除するには、次のようにする必要があります。

$ git stash pop stash@{0}

したがって、この場合、stash エントリは stash リストから削除されます。

関連記事 - Git Stash

関連記事 - Git Push