2

正しく動作する .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'

可能であれば、時間だけを入力したいと思います。

4

1 に答える 1

8

代わりに、 で関数を作成できます.bash_profile。変数を使用できるようになります:

glog ()
{
        git log --all --pretty=format:'%h %cd %s (%an)' --since="$1"
}

そしていつものように呼び出します:

glog "7 days ago"

簡単なフォローアップ: --author="so-and-so" フラグも追加できるようにするには、関数をどのように変更すればよいですか? のように、glog「7 days ago」または blog「7 days ago」と入力できます --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条件は、2 番目のパラメーターが空かどうかをチェックしていることに注意してください。その場合は、コードを実行せずにコードを実行しますauthor。それ以外の場合は、それを使用します。

于 2013-09-18T14:45:00.173 に答える