mirror of
https://github.com/git/git.git
synced 2026-10-27 17:15:23 +01:00
Introduce a new page, `gitmergeconflicts`, that explains the process of
handling a merge conflict in a way that addresses the following issues,
which came from feedback from Git users on the current explanation of
merge conflicts in the `git merge` man page:
- The process for resolving a merge conflict is only explained in the
`git merge` man page, even though there are several other commands
which can result in conflicts.
- Sometimes we use "ours" and "theirs" to refer to the two sides of
the merge conflicts and sometimes we use HEAD and MERGE_HEAD. It should
be consistent. Also the terms "ours" and "theirs" are not explained.
Similarly, it says "The part before the `=======` is typically your
side...", but doesn't explain what "typically" means.
- It introduces the merge format using an analogy to RCS, which very few
Git users have ever used.
- In "The only clean-ups you need are to reset the index file to the
`HEAD` commit to reverse 2. and to clean up working tree changes made
by 2. and 3.", it's not clear to users what "2" and "3" are supposed
to mean.
- It uses a cultural reference ("Conflict resolution is hard; let's go
shopping.") which is confusing or unfamiliar to some people. I think it
would be clearer for users to use a code example instead.
- It doesn't explain the difference between diff3 and zdiff3.
- It sometimes uses the term "area" and sometimes uses the term "hunk".
Also document the unified `--abort`, `--continue` workflow in one
place, since it's a really nice example of a place Git has a consistent
interface between similar commands.
Only discuss merge, rebase, cherry-pick, and revert for now even though
there are other ways that merge conflicts can happen to avoid getting
into the difference between applying a patch and doing a 3-way merge.
Co-Authored-By: Marie Claire LeBlanc Flanagan <hello@marieflanagan.com>
Helped-by: D. Ben Knoble <ben.knoble@gmail.com>
Helped-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Marie Claire LeBlanc Flanagan <hello@marieflanagan.com>
Signed-off-by: Julia Evans <julia@jvns.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 lines
942 B
Plaintext
23 lines
942 B
Plaintext
* whitespace=trail,space
|
|
*.[ch] whitespace=indent,trail,space,incomplete diff=cpp
|
|
*.sh whitespace=indent,trail,space,incomplete text eol=lf
|
|
*.perl text eol=lf diff=perl
|
|
*.pl text eol=lf diff=perl
|
|
*.pm text eol=lf diff=perl
|
|
*.py text eol=lf diff=python
|
|
*.bat text eol=crlf
|
|
CODE_OF_CONDUCT.md -whitespace
|
|
/Documentation/**/*.adoc text eol=lf whitespace=trail,space,incomplete
|
|
/command-list.txt text eol=lf
|
|
/GIT-VERSION-GEN text eol=lf
|
|
/mergetools/* text eol=lf
|
|
/t/oid-info/* text eol=lf
|
|
/Documentation/git-merge.adoc conflict-marker-size=32
|
|
/Documentation/git-merge-file.adoc conflict-marker-size=32
|
|
/Documentation/gitmergeconflicts.adoc conflict-marker-size=32
|
|
/Documentation/gitk.adoc conflict-marker-size=32
|
|
/Documentation/user-manual.adoc conflict-marker-size=32
|
|
/t/t????-*.sh conflict-marker-size=32
|
|
/t/unit-tests/clar/test/expected/* whitespace=-blank-at-eof
|
|
/templates/hooks/*.sample whitespace=indent,trail,space,incomplete text eol=lf
|