错误地将git stash应用于不同的分支

时间:2014-10-31 09:34:34

标签: git git-stash git-revert

我最初在一个分支上工作,说A并使用git stash save <message>隐藏了该分支中的一些更改。完成我在该分支中的工作后,我切换到另一个分支B,然后错误地键入git stash apply,认为我在分支A上,这导致分支B上的几个文件发生冲突。

我尝试对这些文件执行git checkoutgit reset HEAD,但它说文件已取消合并,我无法将我的分支恢复到原始状态。

有什么方法可以将我的分支B带到原始状态或者将我应用于分支B的存储错误地还原?

更新:根据最新的答案,运行git reset HEAD然后git checkout - 确实解决了这个问题。但是如果在我的情况下列表中有多个文件可能会耗费时间,是否有更好的方法可以在一次尝试中撤消所有这些更改?

1 个答案:

答案 0 :(得分:1)

对于未合并的文件,如果您不想要进行更改,请执行以下操作:

git reset HEAD <filename>
git checkout -- <filename>

Git总是告诉您在执行git status时如何将文件转换为其他状态(添加到暂存,放弃更改)。大部分时间遵循屏幕上的说明都会有所帮助。

要使整个分支进入最后一次提交的状态HEAD(点[。]表示当前工作目录中的所有内容):

git reset HEAD .
git checkout -- .