git:合并两个分支:正确的步骤是啥?

Posted

技术标签:

【中文标题】git:合并两个分支:正确的步骤是啥?【英文标题】:git: merge two branches: what are the correct steps?git:合并两个分支:正确的步骤是什么? 【发布时间】:2012-04-23 02:55:24 【问题描述】:

对于我的一个项目,我通常需要从开发分支创建新分支,当我完成工作(在新分支中)时,我需要将新分支合并到开发分支中。这是我做的步骤:

 git clone –b development <git repository url>
 git branch new-branch
 git checkout new-branch
 git push --all

我在新分支中编写代码并在新分支中提交/推送代码。

现在我需要将新分支合并到开发中(请注意,当我在新分支中完成任务时,开发分支会进一步提交其他开发人员)。我的查询是将新分支合并到开发分支并将其推送到远程存储库的正确方法是什么?

谢谢

【问题讨论】:

【参考方案1】:

我更喜欢将功能分支作为压缩提交放在develop(ment) 之上,然后将其丢弃。

git checkout development
git merge --squash new-branch
git branch -D new-branch
git push origin :new-branch

这样您将保留一个包含整个功能的提交。

【讨论】:

【参考方案2】:

如果其他人正在推动“开发”,那么您可能已经看到,您的推动可能会由于“非快进”警告而失败。因此,正确的方法是首先从开发、构建和测试中提取更改,然后再推回开发。以下是适合您的工作流程:

$ git clone -b development <development repository>  <devdir>; cd <devdir>
$ git checkout -b new-branch
$ <edit, build test>
$ git add ...
$ git commit ...
# repeat above 3
#
# now you want to get your changes back on development
$ git pull origin development
$ <build, test - to ensure new-branch works w/ latest development>
$ git push origin new-branch:development

【讨论】:

【参考方案3】:
git checkout master
git merge dev
git commit -m 'merged branches'

【讨论】:

以上是关于git:合并两个分支:正确的步骤是啥?的主要内容,如果未能解决你的问题,请参考以下文章

git 合并分支和提交的步骤

git 合并其他仓库的分支

eclipse 中的git插件合并多个分支

Git远程分支代码强制回退

执行合并后在两个分支中同时提交

git分支合并