Git工作流用于合并远程' origin/develop '到' origin/master '



对于'开发'和'主'来说,无限的生命周期,合并和标记GitHub远程' origin/develop '分支到远程' origin/master '而没有远程' master '领先于远程' develop '的最佳工作流程是什么?

更新文件(自述)并标记' 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

切换到' develop '…

**$ git branch**
* develop
  master

编辑README。md文件。

Commit to local repo…

**$ git commit -a**
[develop 47c8393] Updated branching model
 1 file changed, 18 insertions(+), 6 deletions(-)
 rewrite README.md (81%)

Push ' develop ' to remote ' 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

切换到' master '…

**$ 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(-)

标记"大师"…

**$ git tag -a v3.0.2**

Push ' master ' to remote ' 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 '(合并)领先1。

**$ git log origin/master ^origin/develop**
commit 5750fa78ff81f41ef2327c2f4595f98c0413e245
Merge: 038cb2b 47c8393
Author: 
Date:   
Merge branch 'develop'

如果' master '被合并回' develop ', HEAD指向' develop ',这有问题吗?是否应该从新的"master"派生出一个新的"develop"(不支持"develop"的无限寿命)?

在git中,合并/重基发生在本地,所以如果你想让两个远程一致,你必须首先使它们在本地一致。

在master上执行命令git merge --no-ff develop,在master上创建一个包含develop上所有提交的新提交。master上的新提交与develop上的任何提交都不一样,即使develop上只有一个提交。

使用--no-ff总是创建一个新的提交,所以它总是确保分支是不同的——如果你合并提交,无论如何,也是如此。

如果你想保持分支相同,请查看使用git rebase而不是git merge的工作流,例如(a Rebase workflow for Git)。

您应该合并本地分支,并推出结果。即,合并发展成大师。如果您不想弄乱本地分支,请为此创建分支,进行合并和回推,然后删除它们。或者甚至为这个创建一个克隆。

相关内容

最新更新