【问题标题】:Creating a 'git log' alias with formatting创建带有格式的“git log”别名
【发布时间】:2013-09-23 09:26:12
【问题描述】:

我的 .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>...]'

如何更正我的别名以使其正常工作?

谢谢!

[编辑]

如果我将别名更改为:

alias glog="git log --all --pretty=format:'%h %cd %s (%an)'"

然后输入:

glog --since='some amount of time'

但如果可能的话,我真的很想输入时间。

【问题讨论】:

    标签: git bash terminal alias .bash-profile


    【解决方案1】:

    相反,您可以在.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 的代码。否则,它会使用它。

    【讨论】:

    • 这太棒了...我喜欢我不必在命令后键入“”的好处。谢谢! @konsolebox - 似乎对我有用''而不是“”。有什么幕后的东西我应该知道''让人搞砸吗?谢谢!
    • 谢谢,@konsolebox。这很奇怪,但它对"$1"'$1' 都有效。
    • @LoganHasson 很高兴阅读!由于您是新来的,请记住,如果您的问题已经解决,您可以将答案标记为已接受。您可以单击答案旁边的复选标记将其从空心切换为绿色。如有任何疑问,请参阅Help Center > Asking
    • @fedorqui - 我会的,再次感谢!这让我在接受之前再等一分钟。
    • @fedorqui 完美,非常感谢! (挖掘 [if -z "$2"] 技巧。)
    猜你喜欢
    • 2021-12-18
    • 2013-07-17
    • 2014-08-19
    • 2020-01-26
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2018-04-21
    相关资源
    最近更新 更多