在 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}
因此,在这种情况下,存储条目现在将从存储列表中删除。