将开发分支与主人合并
我有两个分支,即在GitHub存储库中的master
development
。 我正在做所有我在开发分支的发展,如图所示。
git branch development git add * git commit -m "My initial commit message" git push -u origin development
现在我想将development
分支上的所有更改合并到master
。 我目前的做法是:
git checkout master git merge development git push -u origin master
请告诉我,如果我遵循的程序是正确的。
我一般喜欢把master
融入到development
初级development
,如果有任何的矛盾,我可以在development
部门自己解决,我的master
保持清洁。
(on branch development)$ git merge master (resolve any merge conflicts if there are any) git checkout master git merge development (there won't be any conflicts now)
这两种方法并没有太大的区别,但是我有时会注意到,我并不想在将它们合并之后将分支合并到master
,或者在合并之前还有更多的工作要做合并,所以我倾向于让master
保持原样,直到最后的东西。
编辑:从评论
如果你想跟踪谁合并,何时合并,你可以使用--no-ff
标志来合并。 这只有在将development
合并到master
(最后一步)时才是有用的,因为您可能需要在工作stream中多次合并master
(第一步),并为它们创build提交节点可能不是很有用。
git merge --no-ff development
就我个人而言,我的方法与您的方法类似,只要有几个分支和一些压缩的提交,他们回到主人手中。
我的一个同事不喜欢不得不转换分支机构,并且在开发分支上留下类似于以下所有从开发分支执行的内容。
git fetch origin master git merge master git push origin development:master
第一行确保自上次更新本地存储库以来,他有任何上游的提交。
第二个把这些变化(如果有的话)从主人拉到发展
第三个推动开发分支(现在完全合并到主)直到起源/主。
我可能让他的基本工作stream程有点不对,但这是它的主要要点。
如果您可以使用Git Flow命令,那将会很棒。 它容易地将开发分支合并到Master。
你想要做的只是按照这里提到的gitstream程指令,
http://danielkummer.github.io/git-flow-cheatsheet/
脚步。
- 设置git flow项目
- 创build分支,并承诺一切发展
- 运行命令“git flow release start”
- 然后赋予释义的完整信息
- 运行命令“git flow release finish”
- 它会把所有东西都合并起来,把分支变成主。
- 运行命令“git push”将更改提交给主服务器。
检查上面的链接了解更多信息。
是的,这是正确的,但它看起来像一个非常基本的工作stream程,你只是在变更准备好之前缓冲变化。 你应该看看git支持的更高级的工作stream程 。 你可能会喜欢主题分支的方法,它可以让你并行地处理多个特性,或者使gradle方法扩展你的当前工作stream程。
来自这里,不知道分支的人来自底部的解释。
基本主分支的开发逻辑是:你只在另一个分支上工作,只使用主分支来合并另一个分支。
你开始以这种方式创build一个新的分支:
1)在您的Web根目录中克隆需要的存储库:
$ cd /var/www $ git clone git@bitbucket.org:user_name/repository_name.git
2)创build一个新的分支。 它将包含主分支库的最新文件
$ git branch new_branch
3)改变git分支到new_branch
$ git checkout new_branch
4)像往常一样编码,提交…
$ git add . $ git commit -m “Initial commit” $ git push (pushes commits only to “new_branch”)
5)在该分支上完成作业时,与“主”分支合并:
$ git merge master $ git checkout master (goes to master branch) $ git merge development (merges files in localhost. Master shouldn't have any commits ahead, otherwise there will be a need for pull and merging code by hands!) $ git push (pushes all “new_branch” commits to both branches - “master” and “new_branch”)
分行发展
$ git merge master
(解决任何合并冲突)
git checkout master git merge development (there won't be any conflicts now)
一旦完成合并,您需要将代码推送到主设备。 这是因为合并默认提交操作,而不是推送。
1)在分支开发上,使用以下命令检查git状态:
git状态
不应该有任何未提交的代码。 如果是,请将您的代码推到开发分支上:
git add *
git commit -m“我最初的提交信息”
git push origin开发
2)在开发分支上,运行以下两个命令:
git分支-f master master HEAD
git push -f原点大师
它会将您的开发分支代码推送到主分支。
git pull(当前开发分支)
git checkout master
混帐拉
混帐开发
git推送起源大师