sh如果您给Git加上前缀,则Git允许您在别名中使用非git命令和完整的shell语法!。
在您的~/.gitconfig文件中:
[alias] temp = !git add -A && git commit -m "Temp"
这些前缀别名中提供了完整的Shell语法,这也意味着您可以使用Shell函数来构造更复杂的别名,例如利用命令行参数的别名:
[alias] ignore = "!f() { echo $1 >> .gitignore; }; f"
上面的别名定义了f函数,然后使用传递给别名的任何参数运行它。因此,运行git ignore .tmp/将添加.tmp/到您的.gitignore文件中。
实际上,这种模式非常有用,Git可以为您定义$1,$2等等变量,因此您甚至不必为其定义一个特殊的函数。(但是请记住,即使您通过这些变量访问它,Git仍将追加参数,因此您可能希望在末尾添加一个虚拟命令。)
请注意,以!这种方式加上前缀的别名是从git checkout的根目录运行的,即使当前目录在树的更深处也是如此。这可能是从根目录运行命令的有用方法,而无需cd显式地在那里。
[alias] ignore = "! echo $1 >> .gitignore"