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