Git 儲存特定檔案
本教程將介紹僅在 Git 中儲存特定檔案的更改。
在 Git 中,當我們在工作樹中進行一些更改時,我們可能會有一些更改可能在本地倉庫中暫存或尚未暫存。
我們現在可能希望將這些更改儲存一段時間,並在這些更改發生之前處理檔案的一個版本。
因此,出於這樣的目的,我們可以使用 git stash push
命令來儲存更改(即)以供以後使用。
同樣,之後,我們可以使用 git stash pop
命令來獲取這些更改。
我們有時可能需要只儲存或儲存對特定檔案所做的更改,而不是倉庫工作樹中更改的所有檔案。
我們現在將用一個例子來說明這一點。
在 Git 中使用 git stash push
儲存特定檔案的更改
假設我們在倉庫的工作樹中有一個名為 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
的更改。
我們現在可以列出儲存條目並檢視我們的儲存條目,如下所示。
$ 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
命令遍歷倉庫工作樹中的所有更改,並提示選擇要儲存的更改。
在這裡,我們在問題旁邊輸入了選項 y
,即 Stash this hunk [y,n,q,a,d,/,s,e,?]?
,以儲存 example.txt
文件的更改。
我們可以輸入選項 n
以不儲存檔案的當前 hunk
(更改)。
有關 git stash
和可用選項的更多資訊,請參閱此站,即 git stash - 儲存更改。