What is a Git Conflict?
A Git conflict occurs when two branches have changed the same part of a file, and Git cannot automatically merge the changes. When you attempt to merge or rebase branches, Git will pause the process and mark the conflicted files.
Steps to Resolve a Git Conflict
1. Identify Conflicted Files
When you encounter a conflict, Git will mark the conflicted files. You can see these files by running:
2. Open the Conflicted File
Open the conflicted file(s) in your code editor. You’ll see Git’s conflict markers:
Your changes
=======
Incoming changes
>>>>>>> branch-name
<<<<<<< HEAD marks the beginning of your changes.
======= separates your changes from the incoming changes.
>>>>>>> branch-name marks the end of the incoming changes.
3. Resolve the Conflict
Manually edit the conflicted file to choose which changes to keep. You might want to:
Keep your changes: Delete the incoming changes and conflict markers.
Keep incoming changes: Delete your changes and conflict markers.
Keep both changes: Manually edit the file to include the necessary changes.
4. Remove Conflict Markers
After resolving conflicts, remove the conflict markers (<<<<<<<, =======, >>>>>>>) from the file.
5. Add the Resolved File
Once you’ve resolved the conflict, stage the resolved file:
6. Commit the Changes
After staging the resolved file, commit the changes:
7. Verify and Push
After resolving all conflicts in your merge or rebase, verify that everything is correct:
Then, push the changes to the remote repository:
Tips for Handling Conflicts
Stay Calm: Conflicts are a normal part of collaborative work.
Review Changes: Understand both sets of changes before resolving conflicts.
Use Tools: Some IDEs and Git GUIs offer conflict resolution tools.
Communication: Coordinate with team members to prevent conflicting changes.
Example Workflow
Let’s say you are trying to merge feature-branch into main:
git merge feature-branch
If conflicts occur, follow the steps above to resolve them. Here’s an example:
console.log(“Hello, World!”);
=======
console.log(“Bonjour, le monde!”);
>>>>>>> feature-branch
After resolving:
console.log(“Bonjour, le monde!”);
Then:
git commit -m “Resolved conflict”
git push
Additional Resources
Git Documentation on Resolving Merge Conflicts
Atlassian Git Conflict Resolution Guide
Remember, resolving conflicts is a skill that improves with practice. Don’t hesitate to experiment in a safe environment to get comfortable with the process.