在原点上,我有2个分支:master
和development
。
master
在development
之前先进行几次提交,在后面再进行一些提交。
我希望master
分支的树与development
分支的树相同(实际上是在谈论修订的树对象,而不是历史)。如果我在master
分支上丢失了任何内容,那很好,但是development
分支应该完好无损。
这样做的原因是,我们有一个工作流,我们可以在development
上工作,并在准备发布时合并到master
。随着时间的流逝,已经有一些对master
的直接提交。我们希望使master
与development
保持同步。
能否请您分享如何实现?我认为可行的一种方法是将master
合并到development
,然后将提交从development
中的合并还原,然后将development
合并到master
。
编辑:我不能强行推动。我需要创建一个拉取请求以进行任何更改。
答案 0 :(得分:1)
只需将开发推送到远程主服务器(即使使用-f来强制它):
git push -f origin develop:master
调整遥控器的名称。
另一个骇人听闻的建议
如果您想让母版看起来像用最少的工作量开发PR一样,这就是您想要做的:
git cat-file -p origin/develop # find the ID of the _tree_ of this revision
git commit-tree -p origin/master -m "Tree of master is now just like develop" id-of-tree-of-last-command # create a new revision with the same tree of develop... this will generate one ID
git checkout -b some-development use-id-printed-by-commit-tree
git push some-remote some-development
现在,您可以通过某些开发来创建PR。...如果您也希望开发成为该修订版的父版本,请将其作为另一个-p参数添加到commit-tree。 / p>
答案 1 :(得分:0)
您遇到的是我们所有人都遇到的标准Git开发问题,因此已经创建了分支方法。一些分支策略比其他分支策略更受欢迎。最受欢迎的3种是:
GitFlow(看起来很需要):https://nvie.com/posts/a-successful-git-branching-model/
GitHub流:https://guides.github.com/introduction/flow/index.html
我将快速描述如何解决您的问题:
这是解决您今后遇到的问题的方法: