我正在尝试将整个分支重新建立到master上。
师父已通过多个新提交通过了我的第一个分支提交。
当前,我使用git reset HEAD~<X>
在整个分支中创建1个提交,我对分支进行暂存,然后将其提交到一个单独的临时分支/将其存储,然后将其重新建立在master之上。有更好的方法吗?
答案 0 :(得分:0)
您有以下选择。根据您的问题,我认为您可能希望将 Merge + squash功能分支转换为master 选项,因为这将导致对master
的新提交,其中包含您对{{1 }}分支,这似乎是您想要实现的目标,但是我也解释了其他选择,以防万一您更喜欢另一种方法。
feature
分支到feature
master
git checkout master
git merge feature
分支更改合并到feature
分支后,将master
分支合并到master
feature
git checkout feature
git merge master
# Resolve merge conflicts if needed & git commit
git push
git checkout master
git merge feature
# Conflicts are not possible here,
# since they would have been already resolved in previous merge
git push
到feature
中。这将在master
上创建一个新的提交,其中包含您要从master
分支合并的所有更改。缺点:feature
分支似乎没有包含在feature
分支中。
master
git checkout master
git merge --squash feature
git commit
git push
上的整个feature
分支重新设置缺点:
master
分支的所有提交都在master分支的顶部被重写。因此,在重新设置基准之后,feature
分支的提交不会显示为feature
分支中包含的内容。master
分支的提交因此,请考虑上述选项之一。
feature
git co master
git rebase feature
git push
分支,然后将其合并到feature
。缺点:如果您的master
分支已被推送到远程,则需要重写远程历史记录。通常不建议这样做。有关更多详细信息,请参见https://stackoverflow.com/a/55824162/6939011