git stash / git stash pop是否可以意外分支切换?

时间:2017-03-09 13:40:21

标签: git github git-stash

git stashgit stash pop是解决此问题的好方法吗?

我正在分支B工作,但是我意外地发生了一些事情并且我不知道,把我带回了一个较旧的分支,分支A,我一直盲目地处理各种任务。

在我切换到分支B之前,Git希望我将我的新工作提交到分支A,但我不能(不应该)这样做。

是否安全(意味着我不会失去我的所有工作,但能够将其置于正确的分支中),而在分支A(错误的分支)上,执行git stash,然后切换到分支B(正确的分支)并做git stash pop?这样做会遇到任何灾难吗?我的所有工作是否会立即进入正确的分支,我可以像往常一样提交和推动?

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

我认为

This post回答了我的问题,但它是最新的吗?另外,从那篇文章:

  

要隐藏当前未跟踪(新添加的)文件,请添加   参数-u

未提交和未跟踪/新添加的文件有什么区别?是不是“新添加”的未提交文件?

1 个答案:

答案 0 :(得分:2)

这正是stashing的用例之一。如果修改后的文件在两个分支之间没有差异,您就可以在不进行存储的情况下切换分支。但是Git看到你的分支开关会覆盖你的一些变化,如果你不强迫它就拒绝这样做。

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

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

该术语中未跟踪和未提交文件之间的区别在于,Git根本不知道未跟踪文件,未提交文件是Git已经跟踪的文件,但您对它们进行了更改。当然,未提交的文件也是未提交的。