2013-02-15 51 views
1

如果我一次提交了多個文件:file1.txt,file2.txt和file3.txt,該怎麼辦?然後我決定我需要回滾我爲file1.txt所做的所有更改。如何做?回滾更改僅針對一個提交的文件

+0

你想創建一個新的提交回滾的變化FILE1.TXT,或者你想編輯原始提交(更改歷史記錄)離開了變化FILE1.TXT? – 2013-02-15 16:55:56

+0

你能列出兩種情況嗎? – Eugene 2013-02-15 16:59:11

回答

2

您可以將文件返回到提交前的狀態。對於這一點,你需要的改變之前提交,並使用下面的命令

git checkout hash file1.txt 

也可以撤消與git reset HEAD^提交併做哈希的承諾,而增加FILE1.TXT

+0

git reset HEAD ^做什麼? – Eugene 2013-02-15 16:58:29

+0

它撤消最後一次提交,將修改後的文件或未跟蹤文件中的所有更改置於狀態。 – 2013-02-15 17:00:02

+0

@siik具體而言,'git reset HEAD'會將工作目錄重置爲上次提交,恢復當前所做的任何更改。 '^'操作符的意思是「在lhs操作數之前提交一次」。 – 2013-02-15 17:20:50

1

有一個很好的鏈接這裏約爲undoing things in git

如果您剛剛提交,並希望在撤消一些你最近一次提交,你可以使用

git commit --amend 

如果要撤消對文件所做的更改,並把它放回原來的狀態在提交前您可以使用

git checkout <number> <file>