2013-02-15 47 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>