GIT允许合并过时的分支机构

时间:2018-11-01 23:51:20

标签: git merge

即使该分支已过时,GIT仍允许该分支合并到中央仓库中(其他人已将更改提交给master,而master尚未更新到合并的分支中)

  1. 开发人员A在中央存储区上创建了一个新分支“ BugFix_A”。在本地机器上,他做了
    • 一个git pull获取新创建分支的详细信息。
    • git checkout BugFix_A
    • 对“ FileA.txt”执行更改,将更改提交到本地分支

与此同时,另一个开发人员B通过其分支“ BugFix_B”将新的提交合并到中央主分支。

这意味着开发人员A分支“ BugFix_A”在其分支“ BugFix_A”的本地副本上尚未具有这些新提交。开发人员A(未意识到新的提交是在中央回购母版中进行的)执行“ git push origin BugFix_A

我的理解是,由于存在冲突,git必须拒绝此推送(他的分支BugFix_A确实保存了新提交,但令人惊讶的是,推送成功完成了。

第二个问题是git还允许在中央存储库上将分支BugFix_A合并到master中,从而覆盖开发人员B执行的提交

此工作流程是否存在任何问题。我确定我做错了。

graphical representation of master branch being overwritten by outdated branch

1 个答案:

答案 0 :(得分:0)

git push在起源上创建了一个新分支,称为“ origin / BugFix_A”。使用在“ BugFix_A”中所做的更改,主文件上的合并更新文件“ FileA.txt”。只要这些更改不影响“ BugFix_B”的行,您的更改将应用​​于主行的相应行。

如果“ BugFix_A”影响到被“ BugFix_B”更改的行,则将发生合并冲突,您需要通过将母版合并到“ BugFix_A”中进行修复,在此处解决然后再次尝试合并到母版。