我目前正在測試出通過部署Git的網站時遇到了問題了解以下內容:結帳的Git遠程裸回購到舊的分支
目前,我有我的開發環境裸遠程回購與後接收將GIT_WORK_TREE設置爲我的webroot的鉤子。我從我的本地回購協議推到那裏,語法如'git push DEV master'。這很好。不過,我也有一個'開發'分支,我推送到DEV(post-receive鉤子設置爲'git checkout -f [BRANCH_NAME]),這也很好。
我的問題是針對以下情況:假設我在DEV上找到一個錯誤(從'develop'分支推送),但我沒有時間修復它(可能當天有客戶審查)。我希望能夠做一個'git push DEV master'(主分支擁有最後一個無bug推送到DEV,並且是DEV當前開發提交的祖先)並且完成它。但是,當我這樣做時,遠程回購告訴我'一切都是最新的!我想這是有道理的,但我想要做的就是強制git從'master'分支中推送,並觸發post-receive鉤子,這對於正確部署Web資產是必需的。我試着直接到ssh的遠程倉庫,並試圖從那裏結算主人,但它告訴我我需要一個工作樹來做到這一點(因爲它是裸露的,我假設)。
這樣做的正確方法是什麼?如果可能的話,我想盡量避免進行復位或重新綁定,但也許這是唯一的方法。
很好的回答,謝謝。我會稍微等一下,看看有沒有其他建議,但我一定會在今晚嘗試這些。 – user1193694 2012-08-13 20:37:40
你對GIT_WORK_TREE btw完全正確;對於其他人可能希望在遠程回購中執行同樣的事情,其中工作樹與回購本身是分開的,請使用以下語法。git目錄:GIT_WORK_TREE =/path/to/work/tree git checkout [branch_name] – user1193694 2012-08-13 21:11:30