📜  git |使用 Stash

📅  最后修改于: 2021-10-24 12:50:30             🧑  作者: Mango

Git 允许多个用户同时处理同一个项目。假设一个开发人员正在开发一个分支中的功能,他需要从其他开发人员的分支中提取更改,或者如果他必须紧急处理某个其他功能,但他当前正在开发的功能不完整。在这种情况下,您不能提交当前工作功能的部分代码。要添加此新功能,您必须删除当前的更改并将它们存储在其他地方。对于这种情况,Git 提供了一个非常有用的命令,称为“ git stash ”。
git stash命令保存之前编写的代码,然后返回到上次提交以重新开始。现在您可以添加新功能而不会打扰旧功能,因为它保存在本地。提交新功能后,您可以继续处理不完整且未提交的旧功能。

存储当前更改

要保存未提交的更改以供以后使用,您可以使用git stash命令。此命令保存您的本地修改并恢复工作目录以匹配 HEAD 提交,因此它将为您提供干净的工作目录。

git stash

混帐
默认情况下,运行git stash将存储已添加到索引中的更改(暂存更改)以及对 Git 当前跟踪的文件所做的更改(未暂存更改)。要隐藏未跟踪的文件,请使用git stash -u

列出多个存储

您可以创建多个存储并使用“ git stash list命令查看它们。每个存储条目都列出了它的名称(例如stash@{1} )、创建条目时当前分支的名称以及条目所基于的提交的简短描述。

git stash list

git 存储列表
为了为存储提供更多上下文,我们使用以下命令创建存储:

git stash save "message"

取回隐藏的更改

您可以使用“ git stash popgit stash apply命令重新应用先前隐藏的更改。这两个命令之间的唯一区别是git stash pop从存储中删除更改并重新应用工作副本中的更改,而git stash apply仅重新应用工作副本中的更改而不从存储中删除更改。简单来说, “pop”从存储列表中删除状态,而“应用”不会从存储列表中删除状态。

git stash pop

git stash pop

git stash apply

git stash 应用
默认情况下, git stash popgit stash apply将重新应用最近创建的存储:stash@{0}
要选择应用哪个存储,您可以将标识符作为最后一个参数传递(例如:- git stash pop stash@{2})。

查看存储摘要

git stash show命令用于显示对 stash 执行的操作的摘要。

git stash show

git stash 显示

从 stash 创建一个分支

如果要从最初创建 stash 的提交开始创建和检出新分支,并应用保存在 stash 中的更改,请使用git stash branch branch_name stash_name 。它删除作为参数给出的存储,如果没有给出存储,它会删除最新的。

git stash branch newbranch stash@{0}

git 存储分支

删除隐藏

要删除任何特定的存储(例如: – stash@{1}),请使用git stash drop stash@{1} 。默认情况下,如果没有提供参数,此命令将删除 stash@{0} git stash drop )。
要一次删除所有存储,请使用“ git stash clear命令。
git 清除 & git drop