我已经在 .bash_profile 中设置了一堆可以正常工作的 git 别名:
alias gst="git status"
alias gl="git pull"
alias gp="git push"
alias gd="git diff | mate"
alias gc="git commit -v"
alias gca="git commit -v -a"
alias gb="git branch"
alias gba="git branch -a"
我尝试为以下命令添加别名,但不断遇到错误:
git log --all --pretty=format:'%h %cd %s (%an)' --since='7 days ago'
我想做的是能够输入:
glog 'some amount of time'
所以,作为别名和 git 的新手,我认为这会起作用:
alias glog="git log --all --pretty=format:'%h %cd %s (%an)' --since="
它抛出以下错误:
fatal: ambiguous argument '7 days ago': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
如何更正我的别名才能使其正常工作?
Thanks!
[EDIT]
如果我将别名更改为:
alias glog="git log --all --pretty=format:'%h %cd %s (%an)'"
然后只需输入:
glog --since='some amount of time'
但如果可能的话,我真的想只输入时间。
相反,您可以在中创建一个函数.bash_profile
。它将允许您使用变量:
glog ()
{
git log --all --pretty=format:'%h %cd %s (%an)' --since="$1"
}
并像往常一样称呼它:
glog "7 days ago"
快速跟进:我将如何更改功能以允许
还可以附加 --author="so-and-so" 标志吗?如,我
可以输入 glog "7 天前" 或 blog "7 天前" --author="bob"
我会这样做:
glog ()
{
if [ -z "$2" ]; then
git log --all --pretty=format:'%h %cd %s (%an)' --since="$1"
else
git log --all --pretty=format:'%h %cd %s (%an)' --since="$1" --author="$2"
fi
}
所以你可以用它来调用它
glog "7 days ago"
glog "7 days ago" "bob"
请注意,if [ -z "$2" ]; then
条件是检查第二个参数是否为空。如果是这样,只执行代码而不author
。否则,它会使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)