第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編寫git post-receive鉤子以處理特定分支

編寫git post-receive鉤子以處理特定分支

Git
皈依舞 2019-10-05 14:34:03
這是我當前存放在公司服務器中的裸存儲庫中的git push origin master 鉤子: 該鉤子將推到Assembla。我需要的是,當有人將更改推送到我們服務器上的該分支時,僅推送一個分支(理想情況下為master),而忽略推送到其他分支。是否可以從裸倉庫中選擇分支,然后僅將該分支推送到Assembla?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

接收后掛鉤從stdin中以形式獲取參數(shù)<oldrev> <newrev> <refname>。由于這些參數(shù)來自標準輸入,而不是命令行參數(shù),因此需要使用read代替$1 $2 $3。


后收到鉤可以接收多個分支一次(例如,如果有人做了git push --all),所以我們還需要包裹read在一個while循環(huán)。


一個有效的代碼段看起來像這樣:


#!/bin/bash

while read oldrev newrev refname

do

    branch=$(git rev-parse --symbolic --abbrev-ref $refname)

    if [ "master" = "$branch" ]; then

        # Do something

    fi

done


查看完整回答
反對 回復 2019-10-05
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

接收后掛鉤在stdin上獲得的最后一個參數(shù)是ref的更改,因此我們可以使用它來檢查該值是否為“ refs / heads / master”。紅寶石有點類似于我在接收后掛鉤中使用的紅寶石:


STDIN.each do |line|

    (old_rev, new_rev, ref_name) = line.split

    if ref_name =~ /master/

         # do your push

    end

end

請注意,對于推送的每個引用,它都會獲得一行,因此,如果您推送的不僅僅是master,它仍然可以工作。


查看完整回答
反對 回復 2019-10-05
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

斯特凡的答案并沒有為我工作,但這樣做的:


#!/bin/bash


echo "determining branch"


if ! [ -t 0 ]; then

  read -a ref

fi


IFS='/' read -ra REF <<< "${ref[2]}"

branch="${REF[2]}"


if [ "master" == "$branch" ]; then

  echo 'master was pushed'

fi


if [ "staging" == "$branch" ]; then

  echo 'staging was pushed'

fi


echo "done"


查看完整回答
反對 回復 2019-10-05
  • 3 回答
  • 0 關注
  • 1280 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號