2017-03-09 64 views
0

git stashgit stash pop这个问题的一个很好的解决方案?是否意外的分支开关git暗藏/ git隐藏pop可以吗?

我正在分支B上工作,但偶然发生了一些事情,我不知道,把我放回到一个较老的分支,分支A,在那里我一直在盲目地处理各种任务。

Git希望我将新工作提交给分支机构A,然后才能切换到分支机构B,但我不能(不应该)那样做。

安全(意思是我不会失去我所有的工作,但能够把它放到正确的分支),而在分支A(错误的分支)上,执行git stash,然后切换到分支B正确的分支)并做git stash pop?这样做会遇到什么灾难吗?我的所有工作是否会立即进入正确的分支,并且我可以像平常一样承诺和推动?

我在点头并不确定如何不炸毁我的Git项目。

This post回答我的问题,我想,但它是最新?此外,从该职位:

要还藏匿目前未追踪(新增)文件,添加 参数-u

是什么提交和未跟踪/新添加的文件之间的差异?是不是未提交的文件或多或少“新增”?

回答

2

这正是存储用例之一。如果修改后的文件在两个分支之间不会不同,那么您可以不用存储就可以切换分支。但Git认为你的分支交换机会覆盖你的一些改变,如果你不强制改变,它会拒绝这么做。

所以是的,你藏起来,切换分支,然后弹出存储。然后,您可能会遇到可以解决的合并冲突,并且如果您正确执行了此操作,则可以恢复所有工作,并可以测试并提交到正确的分支。

如果您在本地创建了新文件,并且在切换到的分支中添加了相同的文件,则还会出现交换机会覆盖本地文件的问题。为此,还可以隐藏未跟踪文件。

该术语中未跟踪文件和未提交文件之间的区别在于,未跟踪的文件在Git中尚未知晓,而未提交的文件是Git已经跟踪的文件,但您对其进行了更改。未追踪的文件当然也没有提交。