还原提交的几个文件
Revert few files of a commit
我从 master 创建了一个分支,我对文件进行了更改 file1
、file2
、file3
、file4
并添加了一个新文件 new_file5
。并将更改推送到分支。再次对 file2
、file3
、file4
进行更改,并再次将我的代码推送到分支。我对该分支总共进行了 3 次提交。现在我提出了一个拉取请求将它合并到 master 中。审稿人说我不应该对 file1
做任何更改并且文件 new_file5
不是必需的,file3
的几行代码将恢复到其原始状态并休息的代码更改是必需的。
如何将 file1
的所有更改恢复到其原始状态?
如何将几行代码恢复到原始状态
file3
?
对于第一个要求,您可以在较早的提交中签出 file1
:
git checkout ABCD1234 path/to/file1
这里 ABCD1234
是之前提交的 SHA-1 hash,其中 file1
有你想要的版本。
对于file3
的第二个要求,您不能简单地恢复到早期版本,因为您只想更改部分内容。处理此问题的最佳方法是使用 Git 插件差异工具,该工具可以并排显示早期版本中的 file3
当前版本。如果没有这个,您可以在早期提交时在 GitHub 中打开 file3
,然后剪切并粘贴您需要的内容。
顺便说一下,要找到满足这两个要求的早期提交的 SHA-1 哈希值,只需从 bash 中键入 git log
,然后找到感兴趣的早期提交,使用提交消息以帮助您。
我从 master 创建了一个分支,我对文件进行了更改 file1
、file2
、file3
、file4
并添加了一个新文件 new_file5
。并将更改推送到分支。再次对 file2
、file3
、file4
进行更改,并再次将我的代码推送到分支。我对该分支总共进行了 3 次提交。现在我提出了一个拉取请求将它合并到 master 中。审稿人说我不应该对 file1
做任何更改并且文件 new_file5
不是必需的,file3
的几行代码将恢复到其原始状态并休息的代码更改是必需的。
如何将
file1
的所有更改恢复到其原始状态?如何将几行代码恢复到原始状态
file3
?
对于第一个要求,您可以在较早的提交中签出 file1
:
git checkout ABCD1234 path/to/file1
这里 ABCD1234
是之前提交的 SHA-1 hash,其中 file1
有你想要的版本。
对于file3
的第二个要求,您不能简单地恢复到早期版本,因为您只想更改部分内容。处理此问题的最佳方法是使用 Git 插件差异工具,该工具可以并排显示早期版本中的 file3
当前版本。如果没有这个,您可以在早期提交时在 GitHub 中打开 file3
,然后剪切并粘贴您需要的内容。
顺便说一下,要找到满足这两个要求的早期提交的 SHA-1 哈希值,只需从 bash 中键入 git log
,然后找到感兴趣的早期提交,使用提交消息以帮助您。