在解决某些大文件中的冲突时,我在git merge中面临奇怪的行为,其中来自传入分支的某些代码行被简单地忽略,从而产生语法和其他错误。
其中一个例子:
以下是代码当前分支:(从不直接处理的阶段)
Https.post(SERVER_URLS.someSync(queryParams),headers,bodyData,new ResponseHandler({req:null,res : null},function(body){
},function(err,result){
}));
以下是传入分支上的代码:( prod也从未直接处理过)
仅限上述代码,仅发表评论。
// Https.post(SERVER_URLS.someSync(queryParams),headers,bodyData,new ResponseHandler({req:null,res : null},function(body){
// },function(err,result){
// }));
但合并冲突在合并时给了我以下选择:
<<<<<<< HEAD
Https.post(SERVER_URLS.someSync(queryParams),headers,bodyData,new ResponseHandler({req:null,res : null},function(body){
},function(err,result){
=======
// Https.post(SERVER_URLS.someSync(queryParams),headers,bodyData,new ResponseHandler({req:null,res : null},function(body){
// },function(err,result){
>>>>>>> production
正如您所看到的,在生产分支中注释时,最后一个结束括号线保持不变。
}));
理想情况下,它也应该包含在冲突选择中。
这种方式我必须对不在冲突选项中的代码非常谨慎,并且很多时候也必须编辑它以成功解决冲突。
已经尝试使用 -Xignore-all-space 和 -Xignore-space-change 进行合并选项,但没有效果。
我使用git超过2年但是现在随着项目的发展,这些问题在团队中变得越来越频繁。 (虽然团队相当小,但不是非常高级的用户)
这有时也会破坏生产,因为解决冲突变得非常棘手。所以任何帮助都将不胜感激。
注意:GIT版本是2.14.x.一些团队成员正在使用2.6.x但我认为这不应该是问题,因为git元数据是后向兼容的并且很少改变。