摆脱提交的文件并在 HEAD 后面推送两次提交

问题描述

我有一种情况,过去的两次提交我已经从另一个提交中恢复了更改,在那个恢复提交中我还提交了 package.json 和 package-lock.json,现在我需要在我将 rebase 之前摆脱它们掌握并获得我的 PR 批准。如何在不隔夜当前提交的文件的情况下实现这一目标,我的意思是不恢复到我提交了那些不需要的文件的提交?

非常感谢

解决方法

最简单的解决方案是在您所在的位置创建一个新的提交,删除这些文件。

git rm package.json package-lock.json
git commit

如果有这么多提交是一个问题,您可以使用 rebase -i 重新排序和/或压缩提交。但在大多数情况下,简单的解决方案就可以了。然后您可以将您的分支重新设置为 master,您的 PR 可以只包含所有提交,包括您删除不需要的文件的提交。

在某些项目中,上游维护者(批准和合并您的 PR 的人)将执行压缩和/或重新排序提交的工作,而不是要求您这样做。