2013-03-28 69 views
0

假設幾次提交之前我刪除了一堆代碼,現在我想要那個代碼的一些回來。如何恢復特定文件中的特定行?

一段時間以來,我一直在使用SourceTree,它允許你簡單地從早先的提交中選擇你想返回的行並選擇「恢復選中的行」(或類似的東西)。現在我在Linux上工作,無法找到具有任何此類功能的GUI;所以我想知道如何從命令行實現這一點。

想到的第一個選擇是恢復整個提交,然後修改它只包含我想要的代碼。有更簡單/更好的方法嗎?

+0

你可以使用命令行,例如'git show'來檢索較舊的提交...您也可以使用GNU'emacs'的VC菜單 –

回答

1

的想法是像你已經說了:

撤銷承諾,將其復位,然後重新添加該文件,但使用-p選項,這樣你可以選擇你想要哪一行。

一個例子:

git reset --soft HEAD^ 
git reset HEAD fileA 
git add -p fileA 
... 
commit here 
+0

您也可以使用'git checkout -p HEAD ^'這將給你相同的交互式編輯器,但是相反。 –