Thread (3 messages) flat view 3 messages, 3 authors, 2025-09-13

[BUG] git merge reports conflict when two branches add independent methods at the same location

From: Guo Tingsheng <hidden>
Date: 2025-09-12 13:37:50

Hello Git developers,

I would like to report a potential issue in Git's merge behavior, where semantically independent changes at the same position are reported as a conflict, even though they could be merged automatically.

Environment:
- git version: 2.43.0
- OS: Ubuntu 24.04 LTS

Steps to reproduce:
1. Start with a file containing only:

   public class Calculator {
   }

2. On branch A, add a new method `add`:

   @@ -1,1 +1,3 @@
   public class Calculator {
   +    public static double add(double a, double b) {
   +        return a + b;
   +    }

3. On branch B, add a new method `subtract`:

   @@ -1,1 +1,3 @@
   public class Calculator {
   +    public static double subtract(double a, double b) {
   +        return a - b;
   +    }

4. Merge branch A and branch B.

Expected result:
- The merge should succeed automatically, producing a file that contains both methods (order does not matter).  
  For example:

   public class Calculator {
       public static double add(double a, double b) {
           return a + b;
       }
       public static double subtract(double a, double b) {
           return a - b;
       }
   }

Actual result:
- Git reports a conflict and aborts the merge, requiring manual conflict resolution.

Additional information:
- Although the two changes occur at the same location in the file, they are independent additions with no semantic overlap.
- It would be desirable for Git's merge algorithm to automatically combine such changes, as the final merged state is deterministic and conflict-free.
- This limitation may impact developer productivity in real-world projects where multiple contributors extend the same class or configuration file independently.

Thanks,  
Cori
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help