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 - 保存更改。