Git/merge
< Git
Jump to navigation
Jump to search
About
Action: join two or more branches together
In its simplest form, git merge lets you assimilate {changes that were committed to another branch} into the current branch:
git checkout <current-branch>
- just to be sure we're starting with no uncommitted changes (a "clean" state)git merge <other-branch>
- assimilate changes from <other-branch> into this one
This is also done (or attempted) automatically when pull is used.
Things to remember:
- It's better to have all changes committed before you try a merge.
- If the merge fails, you can "back out" with
git merge --abort
. - If things get too ugly and you just want to revert to a known state,
git reset --hard <commit>
blows away all uncommitted changes and reverts to the given commit.- Note: I think "commit" might refer to a specific hash value, not a branch name.
Process
If a merge attempt is not successful, the local file will be marked up with notes indicating the differences between versions. The markup format seems to be:
- <<<<<<< HEAD
- text of local version
- =======
- text of remote version
- >>>>>>> long hexadecimal identifier
(Tentatively:) If you attempt a commit while any of these markers are still in place, Git will refuse to commit and will list the files with unresolved differences.
Auto-Merge
During a pull
:
- Git will attempt to "auto-merge" each conflicting file (i.e. merge from the remote branch into the current one).
- For each file, there will be a message saying whether the merge was successful (as above).