git尝试在重新基址后推送时出错

git尝试在重新基址后推送时出错,git,github,bitbucket,Git,Github,Bitbucket,免责声明:我有点像git和版本控制新手 在工作中,我们正在考虑使用git来管理我们对购买的COTS产品的定制。我很难想出最好的方法来解决这个问题 我的想法是我们将有三个烫发分支: 掌握默认的供应商文件 大师的黄金分公司,我们添加的材料+定制的供应商文件,这是黄金来源 黄金开发部门,正在开发的东西,呸! 工作流程将类似于: 对于供应商修补程序:分支主控程序、更新文件、合并回主控程序、重新设置黄金基准将我们的自定义项合并回供应商更新的文件 对于热修复程序,我们的代码是:分支黄金、修复代码、合并回黄金

免责声明:我有点像git和版本控制新手

在工作中,我们正在考虑使用git来管理我们对购买的COTS产品的定制。我很难想出最好的方法来解决这个问题

我的想法是我们将有三个烫发分支:

掌握默认的供应商文件 大师的黄金分公司,我们添加的材料+定制的供应商文件,这是黄金来源 黄金开发部门,正在开发的东西,呸! 工作流程将类似于:

对于供应商修补程序:分支主控程序、更新文件、合并回主控程序、重新设置黄金基准将我们的自定义项合并回供应商更新的文件 对于热修复程序,我们的代码是:分支黄金、修复代码、合并回黄金、重定开发基础 对于新特性,我们的代码是:分支开发,准备好后重新合并,在发布时合并为黄金 所以在我的测试中,我主要喜欢它的工作方式,提交历史看起来不错,流看起来还可以,但我认为我遇到的最大问题是,它需要我在重新基址后强制推送。例如:

git checkout development
git checkout -b feat-myfeature
*do my thing, commit changes*
git checkout development
git merge feat-myfeature
git push

git checkout gold
git merge development
git push

git checkout master
git checkout -b patch-xxxxx
*update the vendor files, do commits*
git checkout master
git merge patch-xxxxx

git checkout gold
git rebase master
*fix conflicts, adding back our customizations*
git add .
git rebase --continue
git push (error!)
在这一点上,git告诉我,我有一个不同的历史,我必须拉和去冲突完全相同的东西,我只是去冲突的重新基地,或者一个力推也工作…我认为力推将导致我各种各样的头痛,我甚至没有意识到,事实上,拉迫使我修复相同的冲突再次使我感到痛苦我想我在路上的某个地方把我的计划搞错了

你们能提供一些建议来改善这个流程吗


编辑:格式化分支发散后,无法推送。只有当您的分支位于远程分支之前并且可以执行简单的合并时,才可以将更改推送到服务器

要推送重基分支,需要强制推送,这将覆盖分支的远程状态。这将严重破坏正在使用您的分支的任何其他人的工作,因此在您这样做之前警告他们

git push -f