从master继续对git分支进行重新设置会导致重复提交

时间:2018-07-05 06:06:28

标签: git synchronization branch rebase master

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

  1. git checkout releasebranch
  2. git rebase -Xtheirs master(Xtheir,以便在发生冲突时覆盖发布分支上的本地更改)
  3. git pull origin releasebranch --rebase(在重新设置基准后将我的本地提交保留在原处)
  4. git push origin releasebranch

这导致重复的提交,并且与master分支之间的差异很大。 我是否遵循正确的方法同步分支?

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

1 个答案:

答案 0 :(得分:2)

您的第三步和第四步对我来说可疑。理想情况下,如果您正在为releasebranch使用变基工作流,那么您将是唯一使用该分支的工作流。因此,第二步很有意义,因为这是您与master保持同步的方式。但是我不确定要与共享此分支的人进行的其他更改保持同步。

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

git push origin releasebranch

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

git push --force origin releasebranch

所以可能的建议是,如果可能的话,取消第三步,然后在第四步中强行推入。