2017-04-04 53 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

謝謝你的好解釋。 –