0

exec在做一个别名时尝试git rebase -i

pick hash commit_message
x alias_name

错误:

Executing: alias_name
error: cannot run alias_name: No such file or directory
warning: execution failed: alias_name
You can fix the problem, and then run

  git rebase --continue

alias alias_name='calls a phyton script to run arc command'

如果我确实在终端上运行别名,它会按预期工作。

4

1 回答 1

0

Git 不知道您定义的任何别名或 shell 函数,因此它开始执行给定命令的 shell 也不会知道它们。您需要获取包含别名定义的文件,然后在必要时在命令本身中启用别名扩展。

pick hash commit_message
x source some_file; shopt -s expand_aliases; alias_name

其中some_file包含您的别名定义。

不过,我怀疑这仍然会失败,因为有问题的 shell 在实际获取文件或启用别名扩展之前会尝试在该完整命令行中扩展别名,从而留下alias_name未定义的命令名。不过,用函数替换别名应该可以工作。

func_name () {
  the_script.py arg1 arg2
}

在可访问的文件中,执行

x source some_file; func_name
于 2019-11-27T21:31:23.333 回答