Examples

Git Merge Conflict

Resolving a Merge Conflict

Git merge conflict resolution uses git mergetool for changes.

Understanding Git Merge Conflicts

Git merge conflicts occur when changes from different branches clash. This typically happens when multiple developers work on the same file and Git cannot automatically merge the changes. Understanding how to resolve these conflicts is crucial for maintaining a smooth workflow.

Common Scenarios Leading to Merge Conflicts

  • Concurrent Edits: Two branches have changes to the same line in a file.
  • File Deletions: A file is deleted in one branch but modified in the other.
  • Directory Conflicts: A directory is renamed in one branch, causing path discrepancies.

Identifying Merge Conflicts

Git will notify you of conflicts during a git merge operation. The conflicting files will be marked in the terminal output. You can list all conflicting files with:

Resolving Merge Conflicts Using Git Mergetool

Once you've identified the conflicting files, you can use git mergetool to assist in resolving conflicts. This tool provides a visual interface for resolving differences.

Step-by-Step Example of Resolving a Conflict

Consider two branches, feature1 and feature2, both modifying the same file, example.txt.

  1. Attempt to merge feature2 into feature1:

Git will report a conflict in example.txt. Open the file to see conflict markers:

  1. Resolve the conflict by editing the file and deciding which changes to keep:

After editing, the conflict markers may look like:

  1. Mark the conflict as resolved and complete the merge:

Best Practices for Avoiding Merge Conflicts

  • Communicate with your team to coordinate changes.
  • Pull the latest changes from the main branch often.
  • Break up large changes into smaller, manageable commits.