在 previous Git question 中, Daniel Benamy 在谈论 Git 中的工作流程:
I was working on master and committed some stuff and then decided I wanted to put that work on hold. I backed up a few commits and then branched from before I started my crap work.
他想在不丢失当前更改的情况下,将他的工作状态恢复到之前的某个时间点。所有的答案都以各种方式围绕着类似
git branch -m master crap_work
git branch -m previous_master master
这与 git stash
相比如何?当 似乎 像 git stash
所做的一切都已经通过分支处理时,我有点困惑试图看看这里有什么不同的用例......
@ Jordi Bunster : 谢谢,解决了。我想我会把“stashing”看作是一个轻量级的、无名的分支。所以 stash 可以做的任何事情,branch 也可以,但需要更多的单词。不错!
最佳答案
'stash' 获取工作副本中未提交的“脏”内容,并将其 stash 起来,为您留下一个干净的工作副本。
它根本没有真正的分支。然后,您可以将存储应用到任何其他分支之上。或者,从 Git 1.6 开始,您可以:
git stash branch <branchname> [<stash>]
在一个新分支上应用存储,所有这些都在一个命令中。
因此,如果您还没有提交到“错误”分支,那么 stash 非常有用。
如果您已经 promise ,那么您在问题中描述的工作流程是更好的选择。顺便说一下,你是对的:Git 非常灵活,并且随着这种灵 active 而来的是重叠的功能。
关于git-stash 与 git-branch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651/