我已经设置了一个自定义git别名,可以在~/.gitconfig
[alias]
l = "!source ~/.githelpers && git_pretty_log"
我的~/.githelpers
文件包含以下内容:
#!/bin/bash
HASH="%C(yellow)%h%C(reset)"
RELATIVE_TIME="%C(green)%ar%C(reset)"
AUTHOR="%C(bold blue)%an%C(reset)"
REFS="%C(red)%d%C(reset)"
SUBJECT="%s"
FORMAT="$HASH{$RELATIVE_TIME{$AUTHOR{$REFS $SUBJECT"
function git_pretty_log() {
git log --graph --pretty="tformat:$FORMAT" $* |
column -t -s '{' |
less -FXRS
}
但是当我在任何回购中git l
时,我得到了:
$ git l
source ~/.githelpers && git_pretty_log: 1: source ~/.githelpers && git_pretty_log: source: not found
fatal: While expanding alias 'l': 'source ~/.githelpers && git_pretty_log': Aucun fichier ou dossier de ce type
有什么想法吗?
答案 0 :(得分:3)
错误似乎是source
不是外部二进制文件,而是内置的bash。
$ git config alias.foo '!source .gitfoo'
$ git foo
source .gitfoo: 1: source .gitfoo: source: not found
使用bash -c
解决所有问题可以解决问题。
$ git config alias.foo '!'"bash -c 'source .gitfoo && gitfoobar'"
$ echo 'function gitfoobar() { echo foo bar; }' >.gitfoo
$ git foo
foo bar
对于你的情况:
git config --global alias.l '!'"bash -c 'source ~/.githelpers && git_pretty_log'"
答案 1 :(得分:-1)
删除引号;它应该只是:
[alias]
l = !source ~/.githelpers && git_pretty_log
否则,您正在尝试运行一个不存在的长命令,就像错误消息告诉您的那样。