赞
踩
有时,当你在项目的一部分上已经工作一段时间后,所有东西都进入了混乱的状态, 而这时你想要切换到另一个分支做一点别的事情。 问题是,你不想仅仅因为过会儿回到这一点而为做了一半的工作创建一次提交。 针对这个问题的答案是
贮藏
命令。 ——《Pro Git》
在 Git 中,贮藏(stash)是一个非常实用的功能,它允许你暂时保存当前工作区中未提交的更改。这意味着,当你正在进行一些修改,但还未准备好提交时,你可以使用贮藏功能将这些更改临时保存起来。
贮藏的主要用处包括:
贮藏是一个非常灵活的功能,它允许你在Git历史中创建一个临时的“快照”,并在需要时轻松地恢复这些更改。这样,你就可以更加高效地管理你的工作流,并在多个任务和分支之间轻松切换。
比如我接到一个开发任务,首先我从 master 分支创建并切换到 dev 分支,然后在 dev 分支上开发任务。当我的开发进度进行到一半的时候,突然接到一个紧急任务,要修复 master 分支上的一个 BUG,但是此时我的 dev 分支已经修改了几个文件,而且我也不能提交(commit
)这些文件,因为功能还没经过测试。如果我直接切换到 master 分支,这些修改内容也会被带到 master 分支的工作区。现在想要切换分支,但是还不想要那些更改一半的内容,这时可以使用贮藏(stash
):先将 dev 分支上修改的内容贮藏起来,贮藏后 dev 分支已经修改的内容都会恢复成原来的状态,就像刚进入 dev 分支一样。这个时候就可以切换到 master 分支,在 master 分支上修复 BUG,测试无误后,在 master 分支上提交修改内容。master 分支工作告一段落后,再将分支切换到 dev ,然后恢复贮藏,之前在 dev 分支上修改的内容又全部恢复了。
在 TortoiseGit 中,使用贮藏的方法为:选择仓库,单击鼠标右键,在弹出的菜单中选择 TortoiseGit - Stash changes
。
Stash Message
:对要贮藏的情况描述(允许什么也不填,此时 TortoiseGit 自动填入最近一次提交的信息)include untracked
:贮藏未跟踪文件--all
:贮藏所有文件注:贮藏实际上是将相关文件压入栈。
当TortoiseGit检测到存在贮藏的更改时,将扩展几个右键菜单:Stash Apply
、Stash Pop
、Stash Lish
。
Stash Apply
:将最后一次贮藏的更改恢复到工作区(可能要按住 Shift
再鼠标右键单击才能看到这个菜单)Stash Pop
:将最后一次贮藏的更改恢复到工作区,并且从栈中删除最后一次贮藏的更改。Stash Lish
:提供整个贮藏栈的概述,可以在此处查看或删除贮藏的更改。一般情况下,使用Stash Pop
来恢复贮藏的更改。
读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。