2011-11-29 72 views
1

我們目前通過Git使用post-receive鉤子部署到開發服務器。它是一個開發服務器而不是登臺服務器,所以我們希望能夠部署/查看多個分支(而不僅僅是「開發」分支或類似的)。強制遠程結帳分支

當一個新的分支或提交被按下後,接收掛鉤成功地執行遠程回購簽出到任何分支推。

我們典型的週期可能是:

查看開發服務器上新BRANCH1 - git push devserver branch1

查看開發服務器上新BRANCH2 - git push devserver branch2

查看舊BRANCH1開發服務器上再次 - git push devserver branch1

然而,當我們想結賬到比當前活動分支更早的分支時,我們不能執行git push devserver branch1,因爲遠程回購響應w因爲branch1之前已經推出了「一切都是最新的」。很明顯,接收後的掛鉤不會運行,因此還有另一種方式來執行遠程結賬?

我知道我可以通過SSH進入開發服務器,並以這種方式結帳到branch1,但是如果可能,我想從本地回購執行操作。我已經嘗試過預接收和更新鉤子,但在這種情況下似乎都沒有運行。

任何幫助非常感謝!

回答

2

因爲它只是一個(開發)服務器,爲什麼你不刪除分支並重新創建它?

git push devserver :branch1 
git push devserver branch1 
+0

謝謝,作品像一個待遇 – atkaye

+0

很好,沒有想過它 – CharlesB

0

控制一個遠程工作副本是非常有限的,因爲git並不是真正爲此設計的,所以你必須SSH服務器。做一個小腳本連接和結賬會節省你的時間和手指的肌肉。

+0

頒發給manojlds但感謝您的幫助你的建議 – atkaye

0

您也可以嘗試連接相同的腳本作爲pre-receive hook。這意味着無論您的push命令是否成功,您的腳本都將運行。也就是說,我會對這類東西非常警惕,因爲你現在在做的是使用鉤子,它們的設計目的不是爲了使用它,並且可能在未來爲自己挖掘一個洞。

真正的解決方案是@CharlesB建議的 - 使用一個簡單的腳本。

編輯:請忽略此答案。正如評論所暗示的那樣,這是行不通的。隨意downvote;)

+0

謝謝,我已經使用預先收到鉤嘗試,但它似乎並沒有做任何事情。默認情況下沒有pre-receive.sample文件(就像其他人一樣),所以我不認爲你需要做某些事情來啓用它? – atkaye

+0

你似乎暗示預接收鉤即使在說明所有內容都是最新的並且不會推送任何參考文件時也會運行。事實並非如此。 – manojlds

+0

@manojlds我看,謝謝我認爲可能是這種情況 – atkaye