2017-04-04 54 views
0

我已将我的存储库的主分支签出。它有以下4个文件。撤销对文件的更改

  1. 此时就把one.txt存盘
  2. Two.txt
  3. Three.txt
  4. Four.txt

在阅读这些文件,我结束了做小,但无意更改Two.txtFour.txt。这些更改是添加换行符或空格或删除其中一些的性质。检查他们并不会伤害,但我宁愿不要。

我仍然在主分支,我想撤消对这两个文件所做的更改。

当我这样做:

$ git status 

它读取:

变化不连续上演提交。

Two.txt

Four.txt

我明白,除非我的git将它们添加,更改这些文件将取消跟踪,因此将不被考虑的提交。

但我仍然想回滚我对这些文件所做的更改并获取我下载的真实版本。

我所做的:

$ git checkout 

但是,这并没有使红色消失。

然后我做:

$ git pull 

因此,这将获取从远程主合并到我的本地主人,但没有覆盖我对所做的更改Two.txtFour.txt

如何覆盖远程回购的主人有我对Two.txtFour.txt与原来的内容所做的更改?

+0

的可能的复制[我如何丢弃在Git中不分阶段的变化?(http://stackoverflow.com/questions/52704/how-do-i-discard-unstaged-changes-in-git) – 1615903

回答

2

如果要重置所有的变化所做

git checkout -f 

如果你想只检出未分级的变化,而不是

git checkout -- . 
+0

谢谢。还有11分钟。 –

+0

当然。我的荣幸。 – hspandher

1

要撤消任你使用checkout

git checkout -- Two.txt Four.txt 
变化

或者如果您的工作区是干净的并且不包含任何新的更改希望松散,在这种情况下,你可以使用reset --hard,这将迫使提交你告诉它

# I want the version of HEAD 
git reset --hard HEAD 

要小心,这将适用的HEAD版本到您的项目

另一个有用的命令中的所有文件stash

# To move changes from the workspace 
git stash 
# Delete that stash 
git stash pop 
+1

谢谢你的好解释。 –