2012-06-05 59 views
0

我可以直接從GitHub部署到我的(debian linux)服務器嗎?在每次提交之後,有沒有辦法從GitHub向我的服務器自動傳輸代碼?還操縱配置文件?從GitHub部署?

回答

2

克隆服務器上的存儲庫,每隔1或2分鐘(或任何間隔,取決於提交頻率)在服務器上運行cronjob並更新回購。這應該夠了。但這在生產服務器上不可取。儘管如此,您可以在測試或登臺服務器上執行此操作。

1

Bibhas上面的答案是正確的,但如果您不是唯一在存儲庫上協作的人,則可能需要考慮使用git標記來指示可發佈的代碼並僅在新標籤出現。

要做到這一點,標記你的最新提交您的開發機器上,並將它推:

git tag -a v1.0 -m"Initial tag" 
git push origin --tags 

然後,您的服務器上:

git remote update && git checkout v1.0 

然後,您的cron腳本應該做到以下幾點:

  1. 獲取從GitHub最新:
    cd $REPO && git remote update
  2. 獲取當前HEAD的裁判(假設你只是檢查出標籤):
    current=$(git rev-parse HEAD)
  3. 獲取最新標籤的裁判:
    latest=$(git rev-list --tags | head -1)
  4. 最後,如果$current不等於$latest,檢查拿出最新的標籤:
    git checkout $(git tag --points-at $latest)