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

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

Why isn't the git stash unique per branch?

我想它允许将更改从一个分支移动到下一个分支,但这就是摘樱桃的目的,如果您不提交所做的更改,也许您不应该将其移动?

我有时在错误的分支上应用了错误的存储,这使我对这个问题感到疑惑。


如前所述,如果您想要"按分支存储",则您确实希望有一个新分支从现有分支派生。

此外,除了已经提到的存储可以让您进入正在处理的分支的事实之外,它还允许您在提交所有内容之前切换分支。这对通常情况下的樱桃采摘不如对工作副本的樱桃采摘有用。

F.ex。,在功能分支上工作时,我经常会发现与该分支无关的小错误或外观上的杂质。好吧,我立即修复这些问题。当需要提交时,我有选择地提交了相关的更改,但没有提交修订和修饰。相反,我将它们存储起来,这使我可以切换到稳定的次要修复程序分支,然后在该分支中应用该存储项并分别提交每个次要修复程序。 (根据有问题的更改,我还将再次存储其中的一些内容,以切换到其他功能分支,并在其中应用这些功能。)

这使我在工作时可以进入编程模式,而不必担心代码的适当图书馆管理。然后,当我精神休息时,我可以回去仔细地将我的更改分类到所有合适的架子上。

如果存储不是全局的,则这种类型的工作流程将更加困难。


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

将隐藏项应用到分支

1
git stash branch name_of_new_branch

Git将为您创建一个新分支,并签出!有关更多信息,请参见

  • git书

  • info git-stash并搜索option = branch

我猜你可以使用

1
git stash branch <branch | new_branch> [<stash>]

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

1
git stash list

参考


如果您想要从分支运行的" stash ",请执行类似的操作以将您的更改存储在当前分支的新分支上。

1
2
git checkout -b new_stash
git commit -a -m"stashed changes"

撤消隐藏

1
2
git reset HEAD^
git branch -d new_stash

git stash尤其有用,因为您可以将更改拉入肮脏的树中,即,如果您有出色的编辑并想要执行

1
git pull

,但是不能,可以存储所做的更改,拉出然后应用存储

1
2
3
4
git stash
git pull
git stash apply
git stash clear

希望这对您有所帮助!


git-stash对我来说最有用的是将尚未签入的更改移到与当前已签出的分支不同的分支上。

例如-我经常发现自己在错误修复分支上进行了简单的更改;只是发现我正在做的更改比我最初猜测的要复杂。 Git-stash是将这组更改移动到另一个分支的最简单方法。


推荐阅读