Home git How do you resolve change conflicts when merging branches?

How do you resolve change conflicts when merging branches?

Author

Date

Category

The disposition is as follows:

There are two branches. each of them contains the file that was edited (the same).

When merging branches, what happens to this file?


Answer 1, authority 100%

In short: a merge conflict will occur and will need to be resolved somehow.

  • For binaries: only select version A or B (or others if octomerge).

It happens that Git treats binary files as text files and then merge irreversibly spoils them. This primarily applies to office format files.

  • For text files: a couple of options:

Manually resolve conflicts

After the merge, chunks from both merged versions will appear in the file, something like this:

& lt; & lt; & lt; & lt; & lt; & lt; & lt; HEAD
file content from the first branch
======
file content from the second branch
& gt; & gt; & gt; & gt; & gt; & gt; & gt; otherbranch

You will need to manually edit the conflicting file (or files) while remembering to remove the tags left by Git (& gt; & gt; & gt; & gt; & gt; & gt; & gt; otherbranch ). Then:

git add conflicting-file-name.txt
git commit -m'merged A and B '

Select one of the file versions

You can explicitly specify which file to select. Only suitable if one of the versions is not needed.

git checkout --ours a.txt
git checkout --theirs a.txt
git add a.txt
git commit -m "added theirs"

Made you a test repository to clone right away and see how it works.

git clone https://github.com/NickVolynkin/git-merge-test.git
cd git-merge-test
git merge otherbranch
open a.txt

The marks are visible in the file, you can now do the above actions with it.

Read more in the book Pro Git in Russian . It is a must to read it before working with branch merging. There is no substitute for a fundamental understanding of the process.

You can practice branching and merging here: Learn Git Branching .


Answer 2, authority 17%

problems with merge can arise due to the use of an inconvenient editor. Try changing your console editor to IDE or specialized software for these needs

https://git-scm.com/download/gui/linux

Nick Volynkin threw off the theory

Programmers, Start Your Engines!

Why spend time searching for the correct question and then entering your answer when you can find it in a second? That's what CompuTicket is all about! Here you'll find thousands of questions and answers from hundreds of computer languages.

Recent questions