2017-11-23 12 views
0

git pushフックでリモートブランチ名を取得する方法は?たとえば:フックスクリプトでGit第2パラメータを取得する方法

git push company-internal v1_xiaoqiang 

私は事前にプッシュで二番目のパラメータを取得するスクリプトをフックします。

https://gitlab.hldata.com/backend/system.git 

が、私はブランチ名を取得したい:

echo "second parameter:$2" 

出力されv1_xiaoqiang

私はv1_xiaoqiangを避けたいので、互換性のない分岐を別のものにプッシュしてください。このように:

if(local_branch_name != remote_branch_name){ 
    /* 
    you can't push local branch v1_xiaoqiang 
    to remote branch v2_xiaoqiang because it is uncompatible 
    */ 
}else{ 
    //push success... 
} 

リモートブランチ名を取得する方法、またはその機能を実装する方法はありますか?他の解決策?デフォルトの事前プッシュフックから

答えて

1

# This hook is called with the following parameters: 
# 
# $1 -- Name of the remote to which the push is being done 
# $2 -- URL to which the push is being done 
# 
# If pushing without using a named remote those arguments will be equal. 
# 
# Information about the commits which are being pushed is supplied as lines to 
# the standard input in the form: 
# 
# <local ref> <local sha1> <remote ref> <remote sha1> 
# 
# This sample shows how to prevent push of commits where the log message starts 
# with "WIP" (work in progress). 

remote="$1" 
url="$2" 

z40=0000000000000000000000000000000000000000 

while read local_ref local_sha remote_ref remote_sha 
do 

あなたが説明を読めば、何を使用する必要がすることです:

$ local_ref $ local_sha1 $ remote_ref $ remote_sha1

を使用して、SHAおよびローカルおよびリモートのリファレンスを取得します。

これ以外にも、あるブランチ(そのブランチをチェックアウトした後)で開発を行い、別のブランチを新規作成する場合を除いて、別のブランチにプッシュすることはほとんどありません。

関連する問題