Code

branch: die explicitly why when calling "git branch [-a|-r] branchname".
[git.git] / builtin-branch.c
index 4b4abfd3639d2c6a1405e2e056ed5362b4b73abb..7dd51d1fed23dad3edfeedff9659618e9f276ea6 100644 (file)
@@ -582,10 +582,12 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
                rename_branch(head, argv[0], rename > 1);
        else if (rename && (argc == 2))
                rename_branch(argv[0], argv[1], rename > 1);
-       else if (argc <= 2)
+       else if (argc <= 2) {
+               if (kinds != REF_LOCAL_BRANCH)
+                       die("-a and -r options to 'git branch' do not make sense with a branch name");
                create_branch(head, argv[0], (argc == 2) ? argv[1] : head,
                              force_create, reflog, track);
-       else
+       else
                usage_with_options(builtin_branch_usage, options);
 
        return 0;