如何让GIT忽略我的更改

时间:2012-07-24 09:37:04

标签: git

虽然标题看起来与以前的问题类似,但我无法找到解决我的简单案例的方法:

  • 我致力于我的分支'ABCD':git commit -a .....
  • 然后决定访问之前的提交:git checkout 2387687326487
  • 我在这里进行了一些更改,仅用于测试目的,我不想保留它们
  • 我完成了,我想回到我最近的提交(再次:忽略我对旧提交所做的更改):命令git checkout 'ABCD'给出错误:
  

以下文件的本地更改将被结帐时覆盖....请提交或存储...

虽然我不想提交或藏匿或其他什么。我只想回家:)我该怎么办?

4 个答案:

答案 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'

最终,如果您确定不需要隐藏更改中的任何内容,并且已使用gitkgitg进行了两次检查,请丢弃存储:

git stash drop

这是我的首选方式,因为它更安全。