在git merge提交中包含功能更正是否有任何危险?

时间:2014-09-11 13:36:43

标签: git version-control

假设我有两个分支。两者的祖先如下:

var myobject = Custom();

function performTask1(){
    myobject.performTask('1');
}

现在我创建分支' A'我做了以下更改:

var myobject = Custom();

function performTask1(){
    myobject.performTask('1');
}

function performTask2(){
    myobject.performTask('2');
}

然后我创建了分支' B'我做了以下更改:

var taskPerformer = Custom();

function performTask1(){
    taskPerformer.performTask('1');
}

function performTask3(){
    taskPerformer.performTask('3');
}

然后我合并分支' A'分行' B'我发生了冲突:

var taskPerformer = Custom();

function performTask1(){
    taskPerformer.performTask('1');
}

<<<<<<<<<<<< HEAD
function performTask3(){
    taskPerformer.performTask('3');
}
=================
function performTask2(){
    myobject.performTask('2');
}
>>>>>>>>>>>>> A    

我想最终有一个看起来像这样的文件:

var taskPerformer = Custom();

function performTask1(){
    taskPerformer.performTask('1');
}

function performTask3(){
    taskPerformer.performTask('3');
}

function performTask2(){
    taskPerformer.performTask('2');
}

但是,这包括更改行

    myobject.performTask('2');

    taskPerformer.performTask('2');

我应该在合并期间这样做吗?或者我应该只解决冲突,然后对以下提交进行功能更正?

更新1:

我关注的不是惯例,而是实际的版本控制。合并通常是&#34;只是工作&#34;何时将特定于冲突解决的更改与更多与程序功能相关的更改混合?添加另一个提交&#34;更安全&#34;以某种方式合并分支之间的变化?

3 个答案:

答案 0 :(得分:1)

AFAICS如果您只是解决冲突,那么代码就不会起作用,因为变量myobject不再存在,我看到了吗?如果是这样,那么我认为改变变量名称也是完全可以的(我仍然会称之为冲突解决方案,因为更改仍然是由冲突造成的)。

答案 1 :(得分:1)

这有点主观我害怕....但是,我怀疑大多数团队都不想要检查破损的代码,因此你想要解决它在合并期间。

我希望在办理登机手续之前以最有效的方式解决此问题。然后,跟进提交可以根据需要改进或改进。示例可能是重构以减少冗余或具有什么。但是我要离题了。

同样,这取决于团队,但大多数团队(AFAIK)会在提交之前修复此问题。

答案 2 :(得分:0)

您描述的更改无效。变量名称不起作用,它适用于开发人员。因此,在这种情况下,更改变量名称以获得有效代码是没有问题的。正如其他人指出的那样,目标应该是在完成后拥有工作代码。如果有一个,但比如说'B'分支有这个代码: var taskPerformer = Custom();

function performTask1(){
    taskPerformer.performTask('1');
}

function performTask3(){
    taskPerformer.performTask('A');
}

我认为你应该完成合并,记下bug,然后在单独的提交中修复bug。我建议这样做的原因是该bug现在可以在存储库的历史记录中查看。因此,可能正在查看行为的人可以找到解决它的提交。

希望有所帮助,

Pat O