我对 git 的合并功能有一个奇怪的问题,这是我以前从未见过的。我正在将分支中的一些更改合并到master
git 似乎一直在处理一个特定文件时遇到问题。
它基本上是将内容合并到看似随机的地方。最近几次合并此文件时发生过这种情况。
以下是我MyFile.cs
在另一个分支(称为somebranch
)上所做的更改:
- service.UpdateUser(user);
+ service.UpdateUser(user, false);
...
- User[] users = client.ImportPersonnel(a, b, c);
+ UserImportResults results = client.ImportPersonnel(a, b, c);
...
- Response.Write(JsonConvert.SerializeObject(new { UserCount = users.Length }));
+ Response.Write(JsonConvert.SerializeObject(new { Added = results.NumAdded, Updated = results.NumUpdated }));
只需几行代码。
所以我这样做了:
git merge somebranch master
其中大部分是合并而没有冲突的。一些文件确实有冲突,但它们是有意义的。但是它所做的自动合并更改很MyFile.cs
奇怪。例如,线
service.UpdateUser(user, false);
卡在以下master
版本中间的某个随机位置MyFile.cs
:
if (Request["X"] != null)
{
CalculateSomething(Request["X"]);
}
<<<<<<< HEAD
if (Request["Y"] != null)
{
CalculateSomething(Request["Y"]);
}
=======
try
{
client.UpdateUser(user, false);
>>>>>>> qaqc-release
if (Request["Z"] != null)
{
CalculateSomething(Request["Z"]);
}
我不确定 git 如何确定如何将两个文件合并在一起,但我以前从未见过它这样做。它只发生在这个文件中。
它应该合并更改的位置和实际执行更改的位置相距 100 多行。然而,这个文件几乎有 5000 行长,所以相对而言它并不算太远,但仍然很奇怪。
任何想法为什么会发生这种情况或我能做些什么?这是一个经常被触及的文件,所以它会被不断地合并。在过去一年左右的开发过程中,这从来都不是问题,所以我不确定发生了什么变化,但如果能解决它会很棒。