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