gpt4 book ai didi

git - 使用 "This branch is 1 commit ahead, 1 commit behind master"时 Github 中的 "A successful Git branching model"

转载 作者:IT王子 更新时间:2023-10-29 00:47:20 36 4
gpt4 key购买 nike

我在一个干净的仓库中工作,只有一个文件。我是唯一的开发者。

我想在 A succesful git branching model 中执行 develop-release-master 工作流所以我做了:

注意:请记住,我默认关闭快进,因此将所有 merge 命令视为 merge --no-ff

我的源是 Github。

ma​​ster 分支中:

git add .
git commit -m "Initial commit"
git push origin master
git checkout -b develop

开发 分支。我对文件进行了更改,然后:

git add .
git commit -m "work in the file"

我准备发布 0.0 版

git checkout -b release-0.0 develop

release-0.0 分支中。我在文件中添加了版本号。

git add .    
git commit -m "Bumped version 0.0"

我已准备好将此版本 merge 到主版本中。

git checkout master
git merge release-0.0 -m "Releasing v0.0"
git tag -a 0.0 -m "Version 0.0"

... 并进入开发阶段。

git checkout develop
git merge release-0.0 -m "Merge release 0.0 into develop"

然后我将ma​​sterdevelop都推送到Github

git push origin master
git push origin develop

当我检查 Github 中的 develop 分支时,它说:

This branch is 1 commit ahead, 1 commit behind master.

ma​​ster 分支没有这样的消息。

我该怎么做才能解决这个问题? ma​​sterdevelop 此时应该是相等的,因为它们都与 release-0.0 merge 。

最佳答案

不,它不会相等,因为默认情况下您禁用了快进。每次 merge 都会创建一个新的提交,并且 merge 提交具有不同的 ID。所以master中的merge commit不是develop中的merge commit。因此 develop 有一个不在 master 中的提交,而 master 有一个不在 develop 中的提交。因此开发中的消息。

至于master中没有消息,那是因为分支与master比较时会出现消息。所以如果你拿master和master比较的话,这个消息就没有必要了。

一种解决方案是启用快进并在 release 和 master 中显式创建 merge 提交,然后保持快进开发。另一种选择是在每次 merge 到 master 后重新开发开发。您想如何去做完全是您的个人选择,具体取决于您的工作流程和代码。

此外,只要分支中的代码完全符合您的要求,您就无需担心该消息。

关于git - 使用 "This branch is 1 commit ahead, 1 commit behind master"时 Github 中的 "A successful Git branching model",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672274/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com