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 stash save "message"
取回隐藏的更改
您可以使用“ git stash pop
”或“ git stash apply
”命令重新应用先前隐藏的更改。这两个命令之间的唯一区别是“ git stash pop
”从存储中删除更改并重新应用工作副本中的更改,而“ git stash apply
”仅重新应用工作副本中的更改而不从存储中删除更改。简单来说, “pop”从存储列表中删除状态,而“应用”不会从存储列表中删除状态。
git stash pop
git stash apply
默认情况下, “ git stash pop
”或“ git stash apply
”将重新应用最近创建的存储:stash@{0}
要选择应用哪个存储,您可以将标识符作为最后一个参数传递(例如:- git stash pop stash@{2})。
查看存储摘要
git stash show
命令用于显示对 stash 执行的操作的摘要。
git stash show
从 stash 创建一个分支
如果要从最初创建 stash 的提交开始创建和检出新分支,并应用保存在 stash 中的更改,请使用‘ git stash branch branch_name stash_name
‘ 。它删除作为参数给出的存储,如果没有给出存储,它会删除最新的。
git stash branch newbranch stash@{0}
删除隐藏
要删除任何特定的存储(例如: – stash@{1}),请使用‘ git stash drop stash@{1}
‘ 。默认情况下,如果没有提供参数,此命令将删除 stash@{0} git stash drop
)。
要一次删除所有存储,请使用“ git stash clear
”命令。