在git分支和合并方面有一个基本的疑问。
一个分支是否可以在没有任何更改的情况下合并到主分支中。如果可以,那么存在于主分支和分支之间的差异变化会发生什么。它们会被主分支的变化覆盖吗?请参考以下情况:
我有两个分支master和BugBranch。
步骤1:
从主分支master创建了一个名为BugBranch的分支。 现在我有一个TestMerge.java文件。
C--B--A (master)
|
X (branch)
从主分支master创建了一个名为BugBranch的分支。 现在我有一个TestMerge.java文件。
public static void main(String[] args){
...
...
callSomeMethod();
switch(decision)
{
case A:
do_something
break;
case B:
do_something
break;
}
}
第一步:在第一步中,主分支和BugBranch看起来是相同的。
第二步:文件(TestMerge)在主分支中被更改如下(只删除了开关)。
public static void main(String[] args){
...
...
callSomeMethod();
}
C--B--A--1 (master)
|
X (branch)
步骤三:
问题出在当我试图合并分支和主分支时。期望文件中存在冲突,因为肯定存在差异,希望保留BugBranch的更改。但奇怪的是,它被主分支的更改覆盖了。
尝试以下命令:
git checkout master
git merge BugBranch
这真的很令人困惑!
X
(BugBranch)上做了任何更改吗? - axiacX
和A
是完全相同的提交。因此,在合并时,您只需将 X 快进到与 1 完全相同即可。 - kabanus