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
この場合のように、特定のエントリのみを削除するには、次のようにする必要があります。
$ git stash pop stash@{0}
したがって、この場合、stash エントリは stash リストから削除されます。
関連記事 - Git Stash
- Git Stash のポップ コンフリクトを元に戻す
- Git でスタッシュを復元する
- コミットせずに Git Stash の競合を解決する
- 既存のコミットされていない変更を Git の新しいブランチに移動する
- Git Stash を元に戻す
- Git にスタッシュを適用する