【问题标题】:Continuous rebase of a git branch from master results in duplicate commits从 master 连续 rebase 的 git 分支会导致重复提交
【发布时间】:2018-12-13 12:36:02
【问题描述】:

我有一个从 master 分支出来的发布分支。 并且在发布分支上会有一些本地提交。 我需要继续与 master 同步发布分支。所以我每天早上运行一个脚本,步骤如下:

  1. git checkout releasebranch
  2. git rebase -Xtheirs master(Xtheirs 以便在发生冲突时覆盖发布分支上的本地更改)
  3. git pull origin releasebranch --rebase(在变基后保持我的本地提交)
  4. git push origin releasebranch

这会导致重复提交,并且与 master 分支有很多差异。 任何线索我是否遵循正确的方法来同步分支?

注意
一种。我需要运行一个自动脚本来同步,因此手动解决冲突是不切实际的。这就是使用 Xtheirs 选项的原因。
湾。试过git merge -Xours master,它引发了很多冲突。
C。我有另一个分支,它正在使用 git rebase -s ours master 命令从 master 同步,它工作正常。但在这种情况下,我需要在 releasebranch 上进行本地更改以覆盖 master 中的更改。

【问题讨论】:

    标签: git synchronization branch rebase master


    【解决方案1】:

    我觉得你的第三步和第四步很可疑。理想情况下,如果您为releasebranch 使用变基工作流程,那么您将是唯一使用该分支的人。所以第二步是有道理的,因为这就是你如何与master 保持同步。但我不确定是否与来自共享此分支的人的其他更改同步。

    对于您的第四步,由于您可能已经重写了 releasebranch 的历史记录,因此大多数情况下以下操作会失败:

    git push origin releasebranch
    

    相反,您需要强制通过以下方式推送发布分支:

    git push --force origin releasebranch
    

    所以建议尽可能取消第 3 步,然后在第 4 步强制推进。

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 2012-02-15
      • 2012-03-05
      • 2019-11-17
      • 2021-10-14
      • 2018-06-22
      • 2012-07-03
      • 1970-01-01
      相关资源
      最近更新 更多