X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgit-merge.txt;h=ef1f055c8574e928c8e05c820f2f1cc962e3d422;hb=325566cc5d14a409bdbc76aac50344294961f143;hp=d285cba033325f8652996ea71a06d53c22424dae;hpb=27c1dbea3e3a23b3c4b3707dfc9a71c3279ae279;p=git.git diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt index d285cba03..ef1f055c8 100644 --- a/Documentation/git-merge.txt +++ b/Documentation/git-merge.txt @@ -9,28 +9,29 @@ git-merge - Join two or more development histories together SYNOPSIS -------- [verse] -'git-merge' [-n] [--summary] [--no-commit] [--squash] [-s ]... +'git-merge' [-n] [--stat] [--no-commit] [--squash] [-s ]... [-m ] ... +'git-merge' HEAD ... DESCRIPTION ----------- This is the top-level interface to the merge machinery which drives multiple merge strategy scripts. +The second syntax ( `HEAD` ) is supported for +historical reasons. Do not use it from the command line or in +new scripts. It is the same as `git merge -m `. + OPTIONS ------- include::merge-options.txt[] -:: +-m :: The commit message to be used for the merge commit (in case it is created). The `git-fmt-merge-msg` script can be used to give a good default for automated `git-merge` invocations. -:: - Our branch head commit. This has to be `HEAD`, so new - syntax does not require it - :: Other branch head merged into our branch. You need at least one . Specifying more than one @@ -41,27 +42,36 @@ include::merge-strategies.txt[] If you tried a merge which resulted in a complex conflicts and would want to start over, you can recover with -gitlink:git-reset[1]. +linkgit:git-reset[1]. + +CONFIGURATION +------------- +include::merge-config.txt[] +branch..mergeoptions:: + Sets default options for merging into branch . The syntax and + supported options are equal to that of git-merge, but option values + containing whitespace characters are currently not supported. HOW MERGE WORKS --------------- A merge is always between the current `HEAD` and one or more -remote branch heads, and the index file must exactly match the +commits (usually, branch head or tag), and the index file must +exactly match the tree of `HEAD` commit (i.e. the contents of the last commit) when it happens. In other words, `git-diff --cached HEAD` must report no changes. [NOTE] -This is a bit of lie. In certain special cases, your index are -allowed to be different from the tree of `HEAD` commit. The most +This is a bit of a lie. In certain special cases, your index is +allowed to be different from the tree of the `HEAD` commit. The most notable case is when your `HEAD` commit is already ahead of what is being merged, in which case your index can have arbitrary -difference from your `HEAD` commit. Otherwise, your index entries -are allowed have differences from your `HEAD` commit that match -the result of trivial merge (e.g. you received the same patch -from external source to produce the same result as what you are +differences from your `HEAD` commit. Also, your index entries +may have differences from your `HEAD` commit that match +the result of a trivial merge (e.g. you received the same patch +from an external source to produce the same result as what you are merging). For example, if a path did not exist in the common ancestor and your head commit but exists in the tree you are merging into your repository, and if you already happen to have @@ -92,11 +102,11 @@ pull after you are done and ready. When things cleanly merge, these things happen: -1. the results are updated both in the index file and in your - working tree, -2. index file is written out as a tree, -3. the tree gets committed, and -4. the `HEAD` pointer gets advanced. +1. The results are updated both in the index file and in your + working tree; +2. Index file is written out as a tree; +3. The tree gets committed; and +4. The `HEAD` pointer gets advanced. Because of 2., we require that the original state of the index file to match exactly the current `HEAD` commit; otherwise we @@ -143,7 +153,8 @@ After seeing a conflict, you can do two things: SEE ALSO -------- -gitlink:git-fmt-merge-msg[1], gitlink:git-pull[1] +linkgit:git-fmt-merge-msg[1], linkgit:git-pull[1], +linkgit:gitattributes[5] Author @@ -157,4 +168,4 @@ Documentation by Junio C Hamano and the git-list . GIT --- -Part of the gitlink:git[7] suite +Part of the linkgit:git[7] suite