Git
使用 git 部署
有沒有辦法使用 git 通過 SSH 將 git 分支部署/傳遞到不同的伺服器?無需設置 git 伺服器,使用 github 等服務或連接到遠端伺服器並從主伺服器拉取。
我需要類似於 rsync 或 scp 的東西。我目前快速而骯髒的解決方案是簽出、複製到 tmp 目錄並 rsyncing 以部署伺服器。
首先,正如我經常被告知的那樣,git 不是一個部署框架。也就是說,正如 Paul Gear 所說,最簡單的方法是使用遙控器。
首先在要推送的機器上設置遙控器。目標應該是一個裸儲存庫。
git remote add server1 ssh://username@server1.example.com/home/username/gitrepo
然後在源機器上選擇你的分支:
git checkout featurebranch1
最後,將數據推送到您的遙控器:
git push server1 localbranch:destinationbranch
或者您可以將推送設置為上游並推送到上游分支。
git config push.default upstream
正如我之前提到的,遠端 git 必須是一個裸儲存庫才能接受這樣的推送。
也許使用裸儲存庫還不夠好。在這種情況下,在接收方,您可能希望在收到數據時做一些事情,例如將文件檢出到不同的目錄(請記住,repo 必須保持裸露)。您可以通過在 /path/to/bare/repository/hooks/post-recieve 中創建一個腳本文件來使用 post-receive 掛鉤,如下所示:
#!/bin/sh GIT_WORK_TREE=/var/www/html git checkout -f
chmod
它可執行。這會將master
分支檢出到指定的目錄中。