▶ Watch this video on YouTube (opens in a new tab)
A merge conflict feels like an error. It isn't. It's Git throwing up its hands and saying "two people changed the same lines and I'm not going to guess which one you meant." That's the whole thing. Once you stop reading it as a failure, it gets a lot less scary.
The part that trips people up is the syntax. When you hit a conflict, Git stuffs both versions into the file with a wall of angle brackets and equals signs. The stuff above the equals line is your change — the "current" version. Below it is the "incoming" change from the server. That's it. Confusing-looking, simple underneath.
The inline buttons — Accept Current, Accept Incoming, Accept Both — are quick but blunt. "Accept Both" will happily leave you with two copies of the same line. The merge editor's three-pane view is the saner move: incoming on one side, yours on the other, and the result you're actually building at the bottom. You can hand-edit that result, because the tools won't always get it perfect.
The full walkthrough — from creating the conflict to pushing the fix — is in the video.