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:合并两个分支:正确的步骤是啥?的主要内容,如果未能解决你的问题,请参考以下文章