2017-03-28 4 views
1

私はgit cloneコマンドにラッパーを入れようとしています。つまり、 "git clone user @ server:group/repo.git"というコマンドを入力すると、git cloneコマンドはスクリプトをトリガーし、スクリプト内では... 1. gitリポジトリをクローンします 2.リポジトリで "git init"コマンドを実行しますどのようにgitコマンドにラッパーを置くか? git clone

これは、クローンプロジェクタを自動的に特定の方法で設定したいからです。

答えて

1

別名、目的のコマンド:

#/bin/bash 

if [ "$1" == "clone" ] ; then 
    # do your stuff here 
    echo special behavior of git clone 
else 
    command git "[email protected]" 
fi 

は、PATH変数がEに設定されてどこかに保存します:

alias git='mygit' 

は、スクリプトmygitを作成します。 g。 /home/user/bin。それを実行可能にするにはchmod 0770です。

シェルにgit cloneと入力すると、特別なものが発生します。 eと入力するとg。 git pushスクリプトはオリジナルのgitプログラムを呼び出します。

+1

'which git'の代わりに' command git'を使ってエイリアスをバイパスします。これはシェルに組み込まれています(少なくともshとbashの両方、ダッシュ、zsh、および他のシェルについてはあまり確信がありません)。次に、 '' $ @ ''を使って、ユーザが与えた引用符を変更しないように '' $ @ "'を使います( '$ IFS'で定義された空白の再解釈を引き起こします)。 – torek

+0

@torekこれらのヒントはありがとうございます。 – cmks

関連する問題