对于'develop'和'master'的无限生命周期,将GitHub远程'origin / develop'分支合并和标记到远程'origin / master'的最佳工作流程是什么,而远程'master'没有远程领先'发展'?
更新文件(自述文件)和标记'主'的方案......
一切都同意......
$ git log develop ^master
$ git log master ^develop
$ git log master ^origin/master
$ git log master ^origin/develop
$ git log develop ^origin/develop
$ git log develop ^origin/master
切换到'开发'......
**$ git branch**
* develop
master
编辑README.md文件。
致力于本地回购...
**$ git commit -a**
[develop 47c8393] Updated branching model
1 file changed, 18 insertions(+), 6 deletions(-)
rewrite README.md (81%)
将'develop'推向远程'develop'......
**$ git push origin develop**
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 745 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:xxx/xxx.git
038cb2b..47c8393 develop -> develop
切换到'主'......
**$ git checkout master**
Switched to branch 'master'
将'develop'合并为'master'......
**$ git merge --no-ff develop**
Merge made by the 'recursive' strategy.
README.md | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
标记'master'......
**$ git tag -a v3.0.2**
将'master'推送到远程'master'......
**$ git push --tags origin master**
Counting objects: 2, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 442 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:xxx/xxx.git
038cb2b..5750fa7 master -> master
* [new tag] v3.0.2 -> v3.0.2
GitHub现在报告远程'master'比远程'develop'(合并)更早。他们不应该同意吗?...
**$ git log origin/master ^origin/develop**
commit 5750fa78ff81f41ef2327c2f4595f98c0413e245
Merge: 038cb2b 47c8393
Author:
Date:
Merge branch 'develop'
如果'master'合并回'develop',HEAD指向'develop',这是一个问题吗?新的“发展”是否应该从新的“主人”中分支出来(不支持“发展”的无限生命期)?
答案 0 :(得分:2)
在git中,合并/变基在本地发生,所以如果你想让两个遥控器达成一致,你必须首先在本地同意。
在master上创建命令git merge --no-ff develop
会在master
上创建一个新提交,其中包含develop
上的所有提交。 master
上的这个新提交与develop
上的任何提交都不同,即使develop
上只有一个提交。
使用--no-ff
始终会创建一个新的提交,因此它始终确保分支不同 - 如果您组合提交,则无论如何组合都是如此。
如果您希望保持分支机构与使用git rebase
而非git merge
的工作流相同,例如(A Rebase Workflow for Git)。
答案 1 :(得分:0)
您应该合并 local braches,并推出结果。即,合并发展成为主人。如果你不想搞乱本地分支,只为此创建分支,合并一个推回,并删除它们。或者甚至为此创建一个克隆。