мой ~ / .gitconfig:
[alias]
commit = "!sh commit.sh"
Однако, когда я набираю git commit , скрипт не вызывается.
Возможно ли это, или мне нужно использовать другое имя псевдонима?
НЕВОЗМОЖНО
Это из моего клона 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
, если он найдет псевдоним.