[PATCH 0/4] git add --resolved
Junio C Hamano <[email protected]> Tue, 28 Jul 2026 14:52:15 -0700
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
When you are the maintainer of a project and make many merges day in, day out, a lot of your time is spent resolving conflicts and adding the results to the index. It is not unusual to have local changes in your working tree that are unrelated to any particular merge [*]. In such cases, 'git add -u', which adds all changes in the working tree to the index, does not help much. Here is a new option for 'git add' that lets you add paths with resolved conflicts to the index, while keeping unrelated local changes out. The first two patches perform preliminary refactorings. - [1/4] consolidates a helper function to determine whether a line is a conflict marker (replacing two slightly different definitions). - [2/4] introduces a helper that makes registering path removals from the index as easy as adding them, complete with automatic '--dry-run' and '--verbose' support. The third patch implements the new feature. The fourth patch is a totally unrelated code cleanup that almost disappears when viewed with 'git show -w'. 1/4: merge-ll: consolidate conflict marker scanning logic 2/4: read-cache: add remove_file_from_index_with_flags() 3/4: add: introduce '--resolved' option 4/4: read-cache: reindent [Footnote] * This is not limited to my own workflow. An earlier message on this topic worth mentioning is: https://lore.kernel.org/git/CA+55aFxP8j7YbYaRXt-8Y0n8cHafB=FPKMy8gKFYH5QsKX4S=Q@mail.gmail.com/ Documentation/git-add.adoc | 10 +++- builtin/add.c | 92 ++++++++++++++++++++++++++++--- diff.c | 25 +-------- merge-ll.c | 53 ++++++++++++++++++ merge-ll.h | 2 + read-cache-ll.h | 3 ++ read-cache.c | 89 +++++++++++++++++------------- rerere.c | 38 +++---------- t/t2207-add-resolved.sh | 108 +++++++++++++++++++++++++++++++++++++ 9 files changed, 319 insertions(+), 101 deletions(-) create mode 100755 t/t2207-add-resolved.sh -- 2.55.0-594-g42d2bf033e