Git/merge
< Git
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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).