为什么每个分支的git stash不是唯一的?

时间:2008-09-18 02:29:33

标签: git git-stash

我认为它允许将更改从一个分支移动到下一个分支,但这是樱桃选择的目的,如果您没有提交更改,也许您不应该移动它们?

我偶尔会在错误的分支上应用错误的存储,这让我对这个问题感到疑惑。

4 个答案:

答案 0 :(得分:69)

如上所述,如果你想要一个“per-branch stash”,你真的想要从现有的分支中分离出新的分支。

此外,除了已经提到的事实,即存储允许您进入正在处理的分支,它还允许您在提交所有内容之前切换分支。这对于通常意义上的采摘非常有用,而不是用于挑选你的工作副本

F.ex。,在处理功能分支时,我经常会注意到代码中与该分支无关的小错误或外观缺陷。好吧,我马上解决这些问题。什么时候提交,我有选择地提交相关的更改,但不是修复和化妆品。相反,我存储了那些,这允许我切换到我的小修复稳定分支,然后我可以应用存储并分别提交每个小修复。 (根据所讨论的更改,我还会再次隐藏其中一些,切换到另一个功能分支,我将那些应用于其中。)

这使我能够在工作时深入编程模式,而不用担心我的代码正确的图书馆员。然后,当我精神休息时,我可以回去仔细地将我的变化分类到所有正确的架子上。

如果藏匿不是全球性的,那么这种类型的工作流程将更加困难。

答案 1 :(得分:19)

从Git 1.6开始,您现在可以使用

将分页器应用于分支机构
git stash branch name_of_new_branch

Git将为您创建新分支,并查看它!有关更多信息,请参阅

我猜你可以使用

移动藏匿处
git stash branch <branch | new_branch> [<stash>]

要查看您的藏匿处列表,请使用

git stash list

Reference

答案 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是将这组更改移动到不同分支的最简单方法。