mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
Documentation: merging a tag is a special case
When asking Git to merge a tag (such as a signed tag or annotated tag), it will always create a merge commit even if fast-forward was possible. It's like having --no-ff present on the command line. It's a difference from the default behavior described in git-merge.txt. It should be documented as an exception of "FAST-FORWARD MERGE" section and "--ff" option description. Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Reviewed-by: Yann Droneaud <ydroneaud@opteya.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5d417842ef
commit
77c72780ed
|
@ -170,6 +170,30 @@ happens:
|
||||||
If you tried a merge which resulted in complex conflicts and
|
If you tried a merge which resulted in complex conflicts and
|
||||||
want to start over, you can recover with `git merge --abort`.
|
want to start over, you can recover with `git merge --abort`.
|
||||||
|
|
||||||
|
MERGING TAG
|
||||||
|
-----------
|
||||||
|
|
||||||
|
When merging an annotated (and possibly signed) tag, Git always
|
||||||
|
creates a merge commit even if a fast-forward merge is possible, and
|
||||||
|
the commit message template is prepared with the tag message.
|
||||||
|
Additionally, if the tag is signed, the signature check is reported
|
||||||
|
as a comment in the message template. See also linkgit:git-tag[1].
|
||||||
|
|
||||||
|
When you want to just integrate with the work leading to the commit
|
||||||
|
that happens to be tagged, e.g. synchronizing with an upstream
|
||||||
|
release point, you may not want to make an unnecessary merge commit.
|
||||||
|
|
||||||
|
In such a case, you can "unwrap" the tag yourself before feeding it
|
||||||
|
to `git merge`, or pass `--ff-only` when you do not have any work on
|
||||||
|
your own. e.g.
|
||||||
|
|
||||||
|
---
|
||||||
|
git fetch origin
|
||||||
|
git merge v1.2.3^0
|
||||||
|
git merge --ff-only v1.2.3
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
HOW CONFLICTS ARE PRESENTED
|
HOW CONFLICTS ARE PRESENTED
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,8 @@ set to `no` at the beginning of them.
|
||||||
|
|
||||||
--no-ff::
|
--no-ff::
|
||||||
Create a merge commit even when the merge resolves as a
|
Create a merge commit even when the merge resolves as a
|
||||||
fast-forward.
|
fast-forward. This is the default behaviour when merging an
|
||||||
|
annotated (and possibly signed) tag.
|
||||||
|
|
||||||
--ff-only::
|
--ff-only::
|
||||||
Refuse to merge and exit with a non-zero status unless the
|
Refuse to merge and exit with a non-zero status unless the
|
||||||
|
|
Loading…
Reference in a new issue