【发布时间】:2011-06-27 01:44:11
【问题描述】:
在使用 git 维护分叉时,我经常遇到重复提交的问题。
假设我已经分叉了一个存储库并提交了修复。我将更改推送到我的分叉存储库,并且可以在 github 上看到更改。到目前为止一切顺利。
问题出在项目维护者将我的修复合并到他们的分支中并且我稍后更新以与主项目保持同步时。我的修复会在我的历史记录中出现两次,一次是原始的,一次是被项目维护者合并的时间。
有解决办法吗?很高兴终于清理了我的树。
【问题讨论】:
在使用 git 维护分叉时,我经常遇到重复提交的问题。
假设我已经分叉了一个存储库并提交了修复。我将更改推送到我的分叉存储库,并且可以在 github 上看到更改。到目前为止一切顺利。
问题出在项目维护者将我的修复合并到他们的分支中并且我稍后更新以与主项目保持同步时。我的修复会在我的历史记录中出现两次,一次是原始的,一次是被项目维护者合并的时间。
有解决办法吗?很高兴终于清理了我的树。
【问题讨论】:
那些提交是精心挑选的,而不是合并的?如果您将相同的提交合并到两个分支中,然后将其中一个合并到另一个分支中,则提交不会出现两次。您将在历史记录中看到您所期望的确切内容 - 以给定提交作为父提交的两个合并提交,然后这两个分支最终合并:
- o - o - o - o - o - o - o
\ \ / /
\ o - o - o /
\ \ /
o - o - o - o - o
这是合并而不是挑选樱桃的一个非常好的理由 - 为了促进合并,重要的是确保从可能想要合并它们的所有分支的共同祖先开始您的主题分支,以便那些功能/错误修复可以干净地合并,无需拾取任何其他内容。
操作说明:提交是从 Github 的 fork 队列中应用的,该队列在幕后使用了 cherry-pick。已接受,谢谢。
【讨论】: