在 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