0
我有一臺服務器設置爲「生產」遠程,它運行post-recieve shell腳本來爲主分支部署「硬」部署站點。或者將開發分支部署到不同目錄的「軟」部署。通過推送到遠程服務器的Git傳遞變量
soft (fast, low resources) - checks out the work-tree to the /dev directory (fast)
hard (slower, more resources) - check out the work-tree to a new '/temp' directory,
copies the non-tracked files from the '/live' directory to '/temp' (can be large)
if successful, renames the '/live' directory to '/live-old'
renames the '/temp' to '/live' and deletes the older '/live-old' directory
有時候我只希望做的主分支推「軟」部署,如果它的東西,小小的像修補程序,作爲一個硬一個可能需要一段時間來複制像上傳等非跟蹤文件,似乎浪費服務器資源說,如果爲不同的應用程序做多個修補程序。
我可以從我的本地服務器(如在git配置文件的遠程部分)傳遞一個變量到遠程服務器,告訴它爲主分支進行軟部署還是硬部署?
我在想,如果遠程服務器知道什麼地方的遠程名字是我所能我們,或者如果我可以像遙控器定義一個變量添加到URL:
[remote "production-hard"]
url = ssh://project.git?deploy=hard
fetch = +refs/heads/*:refs/remotes/production/*
[remote "production-soft"]
url = ssh://project.git?deploy=soft
fetch = +refs/heads/*:refs/remotes/production/*
我敢肯定這種方式可能不起作用,但希望你能明白我想要做什麼。
另外,請說如果這是非常糟糕的做法,我應該使用另一種方法。
謝謝。
是的,我擔心你會這麼說。如果我可以幫忙的話,我並不想擁有多個分支機構。它不會把Git Flow搞砸嗎? – StuckInSpace
@StuckInSpace:我不是那麼喜歡Git Flow,但是IIRC是一個純粹的本地事物。而且你總是可以推送到不同的(或多個)遠程分支(ES) – eckes