虽然标题看起来与以前的问题类似,但我无法找到解决我的简单案例的方法:
git commit -a .....
git checkout 2387687326487
git checkout 'ABCD'
给出错误:以下文件的本地更改将被结帐时覆盖....请提交或存储...
虽然我不想提交或藏匿或其他什么。我只想回家:)我该怎么办?
答案 0 :(得分:65)
仅使用
git checkout .
将丢弃当前目录中任何未提交的更改(点表示当前目录)。
编辑以回应@GokulNK:
如果您想保留这些更改以供将来使用,您有两种选择:
git stash
:这会将这些更改保存在堆栈中。您可以稍后使用git stash pop
git diff > changes.patch
:这会将这些更改保存到文件changes.patch
。如果您想将它们应用于工作副本,您可以这样做:git apply changes.patch
。答案 1 :(得分:38)
如果您确定不想保留更改,请执行以下操作:
git checkout -f 'ABCD'
选项'-f'代表武力。
答案 2 :(得分:14)
要撤消本地更改并从提交状态返回状态,您可以:
git reset --hard
答案 3 :(得分:10)
除了上面提到的解决方案,您还可以隐藏更改
git stash
结帐你的分行
git checkout 'ABCD'
最终,如果您确定不需要隐藏更改中的任何内容,并且已使用gitk
或gitg
进行了两次检查,请丢弃存储:
git stash drop
这是我的首选方式,因为它更安全。