还原提交的几个文件

Revert few files of a commit

我从 master 创建了一个分支,我对文件进行了更改 file1file2file3file4 并添加了一个新文件 new_file5。并将更改推送到分支。再次对 file2file3file4 进行更改,并再次将我的代码推送到分支。我对该分支总共进行了 3 次提交。现在我提出了一个拉取请求将它合并到 master 中。审稿人说我不应该对 file1 做任何更改并且文件 new_file5 不是必需的,file3 的几行代码将恢复到其原始状态并休息的代码更改是必需的。

  1. 如何将 file1 的所有更改恢复到其原始状态?

  2. 如何将几行代码恢复到原始状态 file3?

对于第一个要求,您可以在较早的提交中签出 file1

git checkout ABCD1234 path/to/file1

这里 ABCD1234 是之前提交的 SHA-1 hash,其中 file1 有你想要的版本。

对于file3的第二个要求,您不能简单地恢复到早期版本,因为您只想更改部分内容。处理此问题的最佳方法是使用 Git 插件差异工具,该工具可以并排显示早期版本中的 file3 当前版本。如果没有这个,您可以在早期提交时在 GitHub 中打开 file3,然后剪切并粘贴您需要的内容。

顺便说一下,要找到满足这两个要求的早期提交的 SHA-1 哈希值,只需从 bash 中键入 git log,然后找到感兴趣的早期提交,使用提交消息以帮助您。