0
假設幾次提交之前我刪除了一堆代碼,現在我想要那個代碼的一些回來。如何恢復特定文件中的特定行?
一段時間以來,我一直在使用SourceTree,它允許你簡單地從早先的提交中選擇你想返回的行並選擇「恢復選中的行」(或類似的東西)。現在我在Linux上工作,無法找到具有任何此類功能的GUI;所以我想知道如何從命令行實現這一點。
想到的第一個選擇是恢復整個提交,然後修改它只包含我想要的代碼。有更簡單/更好的方法嗎?
假設幾次提交之前我刪除了一堆代碼,現在我想要那個代碼的一些回來。如何恢復特定文件中的特定行?
一段時間以來,我一直在使用SourceTree,它允許你簡單地從早先的提交中選擇你想返回的行並選擇「恢復選中的行」(或類似的東西)。現在我在Linux上工作,無法找到具有任何此類功能的GUI;所以我想知道如何從命令行實現這一點。
想到的第一個選擇是恢復整個提交,然後修改它只包含我想要的代碼。有更簡單/更好的方法嗎?
的想法是像你已經說了:
撤銷承諾,將其復位,然後重新添加該文件,但使用-p選項,這樣你可以選擇你想要哪一行。
一個例子:
git reset --soft HEAD^
git reset HEAD fileA
git add -p fileA
...
commit here
您也可以使用'git checkout -p HEAD ^'這將給你相同的交互式編輯器,但是相反。 –
你可以使用命令行,例如'git show'來檢索較舊的提交...您也可以使用GNU'emacs'的VC菜單 –