Git 儲存特定檔案

Azhar Bashir Khan 2022年4月22日
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 命令遍歷倉庫工作樹中的所有更改,並提示選擇要儲存的更改。

在這裡,除了問題 Stash this hunk [y,n,q,a,d,/,s,e,?]? 之外,我們還輸入了選項 y儲存example.txt` 檔案更改。

我們可以輸入選項 n 以不儲存檔案的當前 hunk(更改)。

有關 git stash 和可用選項的更多資訊,請參閱此站,即 git stash - 儲存更改

相關文章 - Git Stash