如何修复 GitHub 拉取请求中被 git rebase 破坏的提交顺序?

2024-05-04

当我编写代码时,我会将其分解为小的逻辑更改,以便轻松快速地进行审查。

为此,我使用git rebase -i(交互式)压缩、删除和更改提交的顺序。

我注意到这有时会导致 GitHub 拉取请求的提交顺序不同(尽管该顺序保留在远程分支上)。

例如,

  • commit 1
  • commit 2
  • commit 3

PR 中可能会显示为:

  • commit 3
  • commit 1
  • commit 2

我在网上搜索了一下,只找到了这个 GitHub 帮助页面:为什么我的提交顺序错误? https://help.github.com/articles/why-are-my-commits-in-the-wrong-order/他们的回答是:

如果您通过 git rebase 或强制推送重写提交历史记录,您 可能会注意到打开一个文件时你的提交顺序是乱序的 拉取请求。

GitHub 强调 Pull Request 作为讨论空间。各方面 它的评论、参考文献和提交都以 按时间顺序排列。重写你的 Git 提交历史记录尽管 执行变基 https://help.github.com/articles/about-git-rebase改变时空连续体,这意味着 该提交可能不会按照您期望的方式表示 GitHub 界面。

如果您总是想按顺序查看提交,我们建议不要使用git rebase。但是,请放心,当您 看事物不按时间顺序排列!

有办法解决这个问题吗?


我已经设法通过以下方式解决这个问题:

  1. 找到保留顺序的最后一次提交
  2. Run git rebase -i <hash of that commit>
  3. 全部替换pick with reword
  4. Run git push -f

在此之前,我尝试仅更改第一个提交消息,这也更改了以下所有哈希值,但这并没有解决问题。

我也必须为每个后续提交执行此操作才能正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复 GitHub 拉取请求中被 git rebase 破坏的提交顺序? 的相关文章

随机推荐