2013-03-28 38 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 ^'这将给你相同的交互式编辑器,但是相反。 –