Можно ли переопределить команду git с помощью псевдонима git?

мой ~ / .gitconfig:

[alias]
        commit = "!sh commit.sh"

Однако, когда я набираю git commit , скрипт не вызывается.

Возможно ли это, или мне нужно использовать другое имя псевдонима?

48
задан noisy 21 August 2010 в 20:10
поделиться

1 ответ

НЕВОЗМОЖНО

Это из моего клона git.git:

static int run_argv(int *argcp, const char ***argv)
{
    int done_alias = 0;

    while (1) {
        /* See if it's an internal command */
        handle_internal_command(*argcp, *argv);

        /* .. then try the external ones */
        execv_dashed_external(*argv);

        /* It could be an alias -- this works around the insanity
         * of overriding "git log" with "git show" by having
         * alias.log = show
         */
        if (done_alias || !handle_alias(argcp, argv))
            break;
        done_alias = 1;
    }

    return done_alias;
}

Так что это невозможно. ( handle_internal_command вызывает exit , если находит команду).

Вы можете исправить это в своих источниках, изменив порядок строк и сделав handle_alias вызовом exit , если он найдет псевдоним.

43
ответ дан 26 November 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: