保持最新 git 提交的状态——但删除我自己的、我不想显示的较早提交。

Keep state of latest git commit--but remove my own, earlier commits I do not want to show.

我找不到这个简单问题的答案。我创建了一个功能分支并添加了几个提交。没有其他人承诺。我已经推到远程了。我希望展示我的代码,因为它存在于我最新的拉取请求提交中,作为一个初始的、干净的版本,没有我自己的、更早的提交。就目前的代码而言,git 更改历史不必要地扰乱了拉取请求。

我这样做了:

  1. 创建此功能分支
  2. 较早的提交——我自己的更改
  3. 较早的提交——我自己的更改
  4. 较早的提交——我自己的更改
  5. 最新提交——在拉取请求中我想将此代码作为初始版本

如何从中间提交 2 到 4 中删除历史记录,从而将提交 5 中存在的代码显示为仅显示提交 1 的更改的新代码?

我是否应该简单地从 git 中删除文件并在新的推送中重新添加它们?或以其他方式清理提交 2 到 4,同时将代码保持在当前位置。 5?

压缩你的提交。 运行 git rebase -i HEAD~4(其中 4 是您要压缩的提交数),然后将 "pick" 替换为 "squash",除了第一个。