0

GitHub から (debian linux) サーバーに直接デプロイできますか? 各コミット後に GitHub からサーバーにコードを自動的に送信する方法はありますか? また、構成ファイルを操作しますか?

4

2 に答える 2

2

サーバーでリポジトリのクローンを作成し、サーバーで 1 分または 2 分ごと (またはコミットの頻度に応じて任意の間隔) に cronjob を実行し、リポジトリを更新します。それで十分なはずです。しかし、それは運用サーバーではお勧めできません。ただし、テストサーバーまたはステージングサーバーで実行できます。

于 2012-06-05T13:15:40.837 に答える
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)
于 2015-12-05T15:28:34.737 に答える