2016-05-29 28 views
0

我有兩個遠程倉庫被我的本地git倉庫管理掛鉤:如何觸發後收到非主分支

  • 起源
  • 階段

我有一個後接收每個遠程的鉤子:

#!/bin/sh 
git --work-tree=/var/www/REMOTENAME --git-dir=/var/repo/REMOTENAME.git checkout -f 

但是,當我推非主分支時,工作樹不會獲得upd ated。舉例來說,如果我有一個名爲「測試」的分支,我會跑:

git push stage test 

,我也沒有看到遠程的工作樹中的任何改變。

如果我運行:

git checkout master 
git merge test 
git push stage master 

我看到在遠程工作樹的變化。

我的目標是能夠使用一個工作流程,使我能夠在多個分支上分離開發並將非主分支推送到階段。

任何幫助將不勝感激。

回答

2

你必須指定一個分支來在你的post-receive鉤子中籤出。 使用的默認分支是master。這就是當您推送非主分支時行爲不同的原因。

該分支可以通過已知的分隔shell命令。 branch=$(git rev-parse --symbolic --abbrev-ref $1)。 (來源Git branch in a hook

然後,在結帳命令結尾處添加$branch