When "git cherry-pick ..bar" encounters conflicts, permit the operator to use cherry-pick --continue after resolving them as a shortcut for "git commit && git cherry-pick --continue" to record the resolution and carry on with the rest of the sequence. This improves the analogy with "git rebase" (in olden days --continue was the way to preserve authorship when a rebase encountered conflicts) and fits well with a general UI goal of making "git cmd --continue" save humans the trouble of deciding what to do next. Example: after encountering a conflict from running "git cherry-pick foo bar baz": CONFLICT (content): Merge conflict in main.c error: could not apply f78a8d98c... bar! hint: after resolving the conflicts, mark the corrected paths hint: with 'git add <paths>' or 'git rm <paths>' hint: and commit the result with 'git commit' We edit main.c to resolve the conflict, mark it acceptable with "git add main.c", and can run "cherry-pick --continue" to resume the sequence. $ git cherry-pick --continue [editor opens to confirm commit message] [master 78c8a8c98] bar! 1 files changed, 1 insertions(+), 1 deletions(-) [master 87ca8798c] baz! 1 files changed, 1 insertions(+), 1 deletions(-) This is done for both codepaths to pick multiple commits and a single commit. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
|---|---|---|
| .. | ||
| add.c | ||
| annotate.c | ||
| apply.c | ||
| archive.c | ||
| bisect--helper.c | ||
| blame.c | ||
| branch.c | ||
| bundle.c | ||
| cat-file.c | ||
| check-attr.c | ||
| check-ref-format.c | ||
| checkout-index.c | ||
| checkout.c | ||
| clean.c | ||
| clone.c | ||
| commit-tree.c | ||
| commit.c | ||
| config.c | ||
| count-objects.c | ||
| describe.c | ||
| diff-files.c | ||
| diff-index.c | ||
| diff-tree.c | ||
| diff.c | ||
| fast-export.c | ||
| fetch-pack.c | ||
| fetch.c | ||
| fmt-merge-msg.c | ||
| for-each-ref.c | ||
| fsck.c | ||
| gc.c | ||
| grep.c | ||
| hash-object.c | ||
| help.c | ||
| index-pack.c | ||
| init-db.c | ||
| log.c | ||
| ls-files.c | ||
| ls-remote.c | ||
| ls-tree.c | ||
| mailinfo.c | ||
| mailsplit.c | ||
| merge-base.c | ||
| merge-file.c | ||
| merge-index.c | ||
| merge-ours.c | ||
| merge-recursive.c | ||
| merge-tree.c | ||
| merge.c | ||
| mktag.c | ||
| mktree.c | ||
| mv.c | ||
| name-rev.c | ||
| notes.c | ||
| pack-objects.c | ||
| pack-redundant.c | ||
| pack-refs.c | ||
| patch-id.c | ||
| prune-packed.c | ||
| prune.c | ||
| push.c | ||
| read-tree.c | ||
| receive-pack.c | ||
| reflog.c | ||
| remote-ext.c | ||
| remote-fd.c | ||
| remote.c | ||
| replace.c | ||
| rerere.c | ||
| reset.c | ||
| rev-list.c | ||
| rev-parse.c | ||
| revert.c | ||
| rm.c | ||
| send-pack.c | ||
| shortlog.c | ||
| show-branch.c | ||
| show-ref.c | ||
| stripspace.c | ||
| symbolic-ref.c | ||
| tag.c | ||
| tar-tree.c | ||
| unpack-file.c | ||
| unpack-objects.c | ||
| update-index.c | ||
| update-ref.c | ||
| update-server-info.c | ||
| upload-archive.c | ||
| var.c | ||
| verify-pack.c | ||
| verify-tag.c | ||
| write-tree.c | ||