Git conflict markers

215,778

The line (or lines) between the lines beginning <<<<<<< and ====== here:

<<<<<<< HEAD:file.txt
Hello world
=======

... is what you already had locally - you can tell because HEAD points to your current branch or commit. The line (or lines) between the lines beginning ======= and >>>>>>>:

=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

... is what was introduced by the other (pulled) commit, in this case 77976da35a11. That is the object name (or "hash", "SHA1sum", etc.) of the commit that was merged into HEAD. All objects in git, whether they're commits (version), blobs (files), trees (directories) or tags have such an object name, which identifies them uniquely based on their content.

Share:
215,778
Mellon
Author by

Mellon

Software Engineer

Updated on July 08, 2022

Comments

  • Mellon
    Mellon almost 2 years

    After I pulled from remote branch, I got conflict, when I open the file it looks something like below:

    <<<<<<< HEAD:file.txt
    Hello world
    =======
    Goodbye
    >>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
    

    I need some explanations of the markers, which portion of code is pulled from remote and which is from local?

    What does the code 77976da35a11db4580b80ae27e8d65caf5208086 stand for?

  • Mellon
    Mellon over 12 years
    What does the code 77976da35a11 stands for then?
  • Noufal Ibrahim
    Noufal Ibrahim over 12 years
    7797... is the commit you tried to merge from.
  • Francisco Corrales Morales
    Francisco Corrales Morales about 10 years
    @Mellon that would be the SHA ID for the commit, where you got the changes, when you did the pull
  • Rose
    Rose over 8 years
    Every time you make a commit - git computes a hash which is a function of the current content/code you have. So 7797 is the computed hash that depicts the commit you are merging.
  • dark_ruby
    dark_ruby about 8 years
    is there software that knows how to render git conflict format and present it in two columns for merging?
  • Owl
    Owl over 7 years
    Is there any way to configure this so we have meaningful labels like branch names and commit ids ? Or are we stuck forever guessing how to work around git developer madness??
  • Jag
    Jag over 6 years
    Look for a 3 way merge tool. Will show 3 files - the common parent, your current branch version and the one you're pulling in side by side and highlight whats different. I use P4merge for complex conflicts - perforce.com/products/helix-core-apps/merge-diff-tool-p4merg‌​e
  • VVB
    VVB over 5 years
    Simple and clean explanation. Beginners can refer help.github.com/en/articles/…
  • Ahmed C
    Ahmed C about 4 years
    I did not understand what I must do
  • doug65536
    doug65536 over 2 years
    You can use tags to mark special points in the history, like releases.
  • Vivek Gani
    Vivek Gani about 2 years
    for anyone looking for a more encompassing response that also covers ||||||| markers see stackoverflow.com/a/56156537/314780