在 Git 中按名稱儲存檔案的更改

Azhar Bashir Khan 2023年1月3日
在 Git 中按名稱儲存檔案的更改

本教程將介紹如何在 Git 中按名稱儲存檔案的更改。

在 Git 中,我們可能希望將更改儲存一段時間,並在這些更改發生之前處理檔案的版本。

我們可以使用 git stash push 命令來儲存更改以儲存以供以後使用。

同樣,稍後,我們可以使用 git stash pop 命令恢復這些更改。

有時,我們可能希望使用名稱儲存儲存條目以方便使用。我們可能希望使用儲存條目的名稱在儲存列表中檢查它並使用該名稱來檢索更改。

我們現在將用一個例子來說明這一點。

在 Git 中使用 git stash push 按名稱儲存檔案更改

假設我們在 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

因此,在儲存列表中,我們可以看到具有給定儲存名稱的儲存條目,即。my_stash

我們現在將再次檢查工作樹更改,如下所示。

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

當我們完成儲存時,Git 沒有顯示新的變化。

需要時,我們可以使用我們剛剛建立的儲存條目的名稱從儲存儲存中檢索更改。

我們需要使用 git stash apply 命令將更改檢索回工作樹。

命令 git stash apply 按名稱檢索儲存條目並將更改應用到工作樹的語法是 git stash apply stash^{/<stash_name>}

請注意,我們使用帶有儲存名稱的正規表示式來獲取所需的儲存條目。

因此,我們需要執行以下操作來檢索名稱 my_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 命令不會從隱藏列表中刪除隱藏狀態(即)隱藏條目。它僅將給定的儲存條目應用於當前工作樹狀態的頂部。

因此,我們仍然可以檢視儲存列表中的儲存條目。

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

我們可以從儲存列表中刪除儲存條目。

我們需要按如下方式執行命令。

$ git stash clear
注意
請謹慎使用此命令,因為它會刪除所有儲存條目。

要僅刪除特定條目,就像在我們的例子中一樣,我們需要執行以下操作。

$ git stash pop stash@{0}

因此,在這種情況下,儲存條目現在將從儲存列表中刪除。

相關文章 - Git Stash

相關文章 - Git Push