2015-05-17 25 views
0

大部分提到的我看到的接收後掛鉤都是在裸回購站中設置的。爲什麼是這樣?爲什麼Git post-receive掛鉤通常在裸回收?

如果我只想推向master分公司部署到我的public_html文件夾,以及所有我推的打算裸回購了後收到鉤,並不意味着所有的我的非master的推送不會在服務器上備份?

例如,假設我有上面提到的設置,我在我的服務器上設置了一個裸回購,其中部署了一個掛鉤到我的實時站點文件夾。我開發了一個月的新功能,不斷推向功能分支。然後有一天(還沒有推到掌握)我的本地機器崩潰/燒傷。我在這個功能分支中的所有工作看起來都丟失了。人們在這種情況下做什麼?有另一個回購鉤子發送所有推送?

回答

1

假設您的服務器不是您的本地計算機,您的服務器沒有崩潰,並且您確實將您的開發分支推送到您的服務器,您的開發分支將仍然位於您的服務器上。它不會以人類可讀的格式存在,但您可以簡單地從服務器上的存儲庫中克隆,並檢索所有分支,即使是未自動部署的分支。

這不涉及裸露或非裸回購。 post-receive掛鉤的原因通常是裸露回購站,原因很簡單,因爲通常只有裸露的回購站才能從客戶端接收內容。可以設置非裸存儲庫來接收來自客戶端的內容,但比通常值得的費用更麻煩,因爲如果當前簽出的分支接收到更新,則會導致問題。

+0

啊我明白了。因此,如果我的本地計算機崩潰了,並且我有了一臺新的本地計算機,我仍然可以從我的服務器克隆裸露的回購站並獲取我所有的源文件? –

+0

@AdamJohns是的,正好。 – hvd