Github feature branch 自动创建分支并再次合并
Github feature branch made branches automatically and merged it again
如果你看到下图,蓝色的分支是 feature branch
Dev A 和 Dev B 正在开发.没有人从功能分支中分支出来。但是当 Dev B 删除了一些文件,提交并将更改推送到 repo 时,它被创建为 git 客户端图形视图中 feature branch
的一个分支(sourcetree ).当 Dev B 检查 git status
时,它仍然说工作分支是相同的 feature branch
.
Dev A 创建了一些服务 class,提交并推送了它。它显示它仍然在 feature branch
中。为什么会发生这种情况,有人可以帮忙解释一下吗?它只是图形吗?或者 Dev A 或 Dev B 没有在两者之间进行更改。此外,在 Dev B 的下一个 git push
中,红色新分支合并回功能分支。
根据要求,这里是 Dev B 的 git 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'
如果你看到下图,蓝色的分支是 feature branch
Dev A 和 Dev B 正在开发.没有人从功能分支中分支出来。但是当 Dev B 删除了一些文件,提交并将更改推送到 repo 时,它被创建为 git 客户端图形视图中 feature branch
的一个分支(sourcetree ).当 Dev B 检查 git status
时,它仍然说工作分支是相同的 feature branch
.
Dev A 创建了一些服务 class,提交并推送了它。它显示它仍然在 feature branch
中。为什么会发生这种情况,有人可以帮忙解释一下吗?它只是图形吗?或者 Dev A 或 Dev B 没有在两者之间进行更改。此外,在 Dev B 的下一个 git push
中,红色新分支合并回功能分支。
根据要求,这里是 Dev B 的 git 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'