2014-05-21 49 views
4

我最近遇到了管理項目及其可交付項目的方法。項目團隊正在使用git存儲庫進行開發。有另一個存儲庫用於部署工件。我可以看到這種方法的幾個好處。獨立開發和部署git存儲庫

  1. 保持部署歷史清潔(無開發商提交)
  2. 部署庫的機會有限(沒有開發商可以把掌握和突破的東西,因爲他們沒有進入到部署庫)
  3. 所有依賴項位於部署存儲庫中。這樣可以降低在部署的不同階段運行bower安裝或類似的依賴關係管理器的風險,並獲得不同的結果。

您認爲此方法的優點和缺點是什麼?

+1

[本文](http://nvie.com/posts/a-successful-git-branching-model/)討論了使用單一的Git倉庫,實現了管理模式大部分相同;至於(2),您可以(也應該)通過SSH來限制對部署服務器的訪問。 – lfk

+0

對部署服務器的訪問受限並不會阻止人們意外推送到主服務器(即使使用--force)。該項目仍然使用提到的git分支模型,但是在項目準備發佈後(master分支中的所有更改),master分支的快照被複制到新發布分支中的部署存儲庫,並且發佈分支被檢出在服務器上。 – Shaggy

回答

4

主要好處是保持可交付的工件(可以很大,可以包括二進制文件)獨立於源回購

  • 主回購仍然是一個唯一來源回購(意味着文本內容,不 - 或幾個和小 - 二進制文件)
  • 遞送回購:
    • 獨立地管理,
    • 不需要完全克隆(淺層克隆可以是足夠的,因爲該特徵has been improved recently
    • 如果需要可以「清除」(修剪舊的交付現在已過時)

主不方便(對於這兩種方法)是將二進制文件保存在git repo中(這不適合用於這種工件)。
替代品存在(使用git):git-annex, bup, ...
或者你可以store those deliverable in a dedicated referential,像Nexus (which is different from a git repo

+0

謝謝VonC。你能想到這種方法也有一些缺點嗎? – Shaggy

+0

+1淺色克隆 – Shaggy

+0

@Shaggy我編輯了我的答案,包括一個缺點。 – VonC