假设我从文件中删除了一行,然后我提交并推送该更改:
提交4dd87
$ vim myfile.txt //remove line from file
$ git add myfile.txt
$ git commit -m "line added"
$ git push origin master
现在,我再做一次改动,然后推动它:
提交84674
$ vim myfile.txt //make another change, whatever
$ git add myfile.txt
$ git commit -m "another change"
$ git push origin master
现在,我想恢复我在第一次提交时删除的行。我会在接下来的步骤中做到这一点:
1)转到上一个提交,用git reset --hard 4dd87
删除该行(4dd87之前)
2)使用git cherry-pick 84674
应用第二次提交的更改
3)用git push origin master --force
但是当有更多人推向回购时,使用这种方法有许多缺点。
那么,有更好的方法吗?
答案 0 :(得分:2)
使用git revert
,它会创建一个新的提交,以恢复原始提交中所做的更改。
答案 1 :(得分:0)
最简单的方法是:检查先前提交的文件:
git checkout 4dd87 myfile.txt
现在您的文件恢复到4dd87中的状态,并准备好提交,或者您可以进一步修改它。