2010-11-22 60 views
26

我想知道是否有辦法快速撤銷特定的提交大塊。如何在git中反轉特定的提交塊?

我可以在兩次提交或HEAD之間生成一個diff以查看差異。

我該如何反轉其中的一個(或更好的是,一組特定的hunks)?

回答

34
git checkout -p $REF -- path/to/file 

$REF是裁判的名字或提交ID,指定你想從拿文件的狀態提交。例如,要有選擇地還原上次提交中所做的更改,請使用HEAD^

+3

更確切地說,這將讓你有選擇地檢出以前提交的內容版本;您當前的提交和工作樹之間的更改也將被丟棄。 – Cascabel 2010-11-22 17:32:10

2
git difftool $REF -- /path/to/file 

其中$REF是裁判的名字或提交ID指定承諾要從中獲取文件狀態。例如,要有選擇地還原上次提交中所做的更改,請使用HEAD ^。

這個問題已經被@cdhowie回答了,但我發現使用像meld這樣的交互式difftool有選擇性地恢復舊代碼/行代碼,特別是如果有新引入的,很難找到代碼中的錯誤。

相關問題