Skip to content

Commit 4e8115f

Browse files
committed
merge: allow "-" as a short-hand for "previous branch"
Just like "git checkout -" is a short-hand for "git checkout @{-1}" to conveniently switch back to the previous branch, "git merge -" is a short-hand for "git merge @{-1}" to conveniently merge the previous branch. It will allow me to say: $ git checkout -b au/topic $ git am -s ./+au-topic.mbox $ git checkout pu $ git merge - which is an extremely typical and repetitive operation during my git day. Signed-off-by: Junio C Hamano <[email protected]>
1 parent c3f6163 commit 4e8115f

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

builtin/merge.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,9 +1062,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
10621062
if (!allow_fast_forward && fast_forward_only)
10631063
die(_("You cannot combine --no-ff with --ff-only."));
10641064

1065-
if (!argc && !abort_current_merge && default_to_upstream)
1066-
argc = setup_with_upstream(&argv);
1067-
1065+
if (!abort_current_merge) {
1066+
if (!argc && default_to_upstream)
1067+
argc = setup_with_upstream(&argv);
1068+
else if (argc == 1 && !strcmp(argv[0], "-"))
1069+
argv[0] = "@{-1}";
1070+
}
10681071
if (!argc)
10691072
usage_with_options(builtin_merge_usage,
10701073
builtin_merge_options);

0 commit comments

Comments
 (0)