Github feature branch 自动创建分支并再次合并

Github feature branch made branches automatically and merged it again

如果你看到下图,蓝色的分支是 feature branch Dev ADev B 正在开发.没有人从功能分支中分支出来。但是当 Dev B 删除了一些文件,提交并将更改推送到 repo 时,它被创建为 git 客户端图形视图中 feature branch 的一个分支(sourcetree ).当 Dev B 检查 git status 时,它仍然说工作分支是相同的 feature branch.

Dev A 创建了一些服务 class,提交并推送了它。它显示它仍然在 feature branch 中。为什么会发生这种情况,有人可以帮忙解释一下吗?它只是图形吗?或者 Dev ADev B 没有在两者之间进行更改。此外,在 Dev B 的下一个 git push 中,红色新分支合并回功能分支。

根据要求,这里是 Dev Bgit log

* af335d1 added...
*   63fa2a2 Merge branch 'feature-branch' of github.devops.abcCorp.local:namespace/project into feature-branch
|\  
| * c8d62c1 removed...
* | 74456c5 created...
|/  
* b321f9a fixed...
* 97d7c33 added...

发生的事情是 Dev A 尝试推送,但是被拒绝了,所以他先拉然后推送成功。

一个pull相当于一个fetch和一个merge。例如,如果您在 feature_branch:

git pull origin feature_branch

相当于

git fetch
git merge origin/feature_branch

日志中有分支的原因是,由于 Dev A 的本地分支与远程分支分叉,因此无法进行快进合并 git 必须创建合并提交。

您可以通过使用 git pull --rebase 在远程分支上重新应用本地提交来避免这种情况。

              |  local feature_branch           remote reature_branch
--------------|------------------------------------------------------
before        | A--B--C                        A--B--D
              |
pull          | A--B--C--M
              |        \ /
              |         D
              |
pull --rebase | A--B--D--C'