我认为它允许将更改从一个分支移动到下一个分支,但这是樱桃选择的目的,如果您没有提交更改,也许您不应该移动它们?
我偶尔会在错误的分支上应用错误的存储,这让我对这个问题感到疑惑。
答案 0 :(得分:69)
如上所述,如果你想要一个“per-branch stash”,你真的想要从现有的分支中分离出新的分支。
此外,除了已经提到的事实,即存储允许您进入正在处理的分支,它还允许您在提交所有内容之前切换分支。这对于通常意义上的采摘非常有用,而不是用于挑选你的工作副本。
F.ex。,在处理功能分支时,我经常会注意到代码中与该分支无关的小错误或外观缺陷。好吧,我马上解决这些问题。什么时候提交,我有选择地提交相关的更改,但不是修复和化妆品。相反,我存储了那些,这允许我切换到我的小修复稳定分支,然后我可以应用存储并分别提交每个小修复。 (根据所讨论的更改,我还会再次隐藏其中一些,切换到另一个功能分支,我将那些应用于其中。)这使我能够在工作时深入编程模式,而不用担心我的代码正确的图书馆员。然后,当我精神休息时,我可以回去仔细地将我的变化分类到所有正确的架子上。
如果藏匿不是全球性的,那么这种类型的工作流程将更加困难。
答案 1 :(得分:19)
从Git 1.6开始,您现在可以使用
将分页器应用于分支机构git stash branch name_of_new_branch
Git将为您创建新分支,并查看它!有关更多信息,请参阅
info git-stash
并搜索选项= branch
。
我猜你可以使用
移动藏匿处git stash branch <branch | new_branch> [<stash>]
要查看您的藏匿处列表,请使用
git stash list
答案 2 :(得分:17)
如果你想要一个从分支机构运行的“藏匿”做这样的事情,把你的更改存储在当前分支机构的新分支上。
git checkout -b new_stash
git commit -a -m "stashed changes"
撤消藏匿
git reset HEAD^
git branch -d new_stash
git stash特别有用,因为您可以将更改提取到脏树中,即如果您有未完成的编辑并且想要执行
git pull
你不能,你可以存储你的更改,拉动然后应用藏匿
git stash
git pull
git stash apply
git stash clear
希望这有帮助!
答案 3 :(得分:5)
git-stash对我来说非常有用,可以将尚未签入的更改移至与当前签出的分支不同的分支。
例如 - 我经常发现自己在bug修复分支上进行了简单的更改;只是发现我正在进行的改变比我猜想的更复杂。 Git-stash是将这组更改移动到不同分支的最简单方法。