git-stash vs. git-branch在先前的Git问题中,Daniel Benamy谈论了Git中的工作流程:
他想将工作状态恢复到以前的时间点,而又不丢失当前的更改。 所有的答案都以各种方式围绕着
与 @Jordi Bunster:谢谢,这可以解决问题。 我想我应该考虑"隐藏"像一个轻量级的,无名的分支。 因此,存储可以做的任何事情,分支也可以做,但要增加更多的单词。太好了! 'stash'将工作副本上未提交的,"脏"的东西藏起来,并将其藏起来,为您提供干净的工作副本。 它根本不分支。然后,您可以将隐藏项应用到任何其他分支的顶部。或者,从Git 1.6开始,您可以执行以下操作:
在一个命令中将隐藏项应用到新分支的顶部。 因此,如果您尚未提交到"错误的"分支,则隐藏将非常有用。 如果您已经提交过,那么在问题中描述的工作流程是更好的选择。顺便说一句,您是对的:Git非常灵活,并且随着灵活性的出现而产生了重叠的功能。 还原存储时,将重新应用所做的更改,并继续处理代码。 存放您当前的更改
您也可以拥有多个存储。藏身像堆一样工作。每次保存新存储时,它都会放在堆栈的顶部。
注意 申请藏匿处
应用后,您可能会注意到该存储区仍然存在。如果您不再需要它,可以将其删除。
或者,由于存储区的行为就像堆栈一样,因此您可以弹出保存的最后一个存储区:
如果要擦除所有藏匿处,请运行"清除"命令:
很有可能是您不经常使用藏匿处。如果您只是想快速存储您的更改以在以后还原它们,则可以省略存储ID。
在将其用于某些非常重要的工作之前,请先对其进行试验。 我还在博客上发布了对此内容的更深入的版本。 我一直对git stash保持警惕。如果藏匿几次,事情会变得混乱。 git stash list将显示您创建的存储的编号列表,并提供消息(如果提供的话)...但是问题在于,除非清除残酷的git stash,否则您无法清理存储: 。因此,除非您总是为自己的藏匿区提供超级描述性信息(这有点与藏匿物的哲学背道而驰),否则您最终将获得一堆无法理解的藏匿处。 我知道找出哪一个的唯一方法是使用gitk --all并找到藏匿处。至少这可以让您看到创建隐藏的提交,以及包含在该隐藏中的所有内容的差异。 请注意,我使用的是git 1.5.4.3,我认为1.6添加了git stash pop,我想它将应用所选的stash并将其从列表中删除。看起来更干净了。 现在,我总是尝试分支,除非我绝对肯定要在同一天(即使在一小时内)回到那个秘密。 如果您寻找的工作流程可能比git stash更合适,则可能需要考虑git-bottle。它是一个实用程序,用于在正常git提交时保存和还原各种git工作状态,从而有效地快照工作树的当前和相关状态以及git状态下显示的所有各种文件状态。
与
|