2010-12-02 102 views
5

我們有一個小型數字團隊(3名設計師,3名開發人員),並且正在尋求將Git整合到我們的系統中。小團隊的Git開發策略

目前,我們大多數網站都有一箇中轉站點(dev.example.com)和一個生產站點(example.com)。我們的開發人員通常會將代碼更改爲本地版本,將這些更改移至暫存站點,然後一旦批准,這些更改就會實時移動。另一方面,我們的設計人員(當開發人員太忙時)進行小的編輯,直接進入中轉站點,然後在批准後推送直播。此外,在某些情況下,我們沒有中轉站點,編輯會直接推送到生產站點。

我知道不同的工作流程並不理想,但對於我們將Git整合到當前系統並保持工作流程相當簡單(出於設計者的考慮),最佳方式是什麼?在合併Git之前,我們當前的工作流程是否應該先標準化(例如,分段站點是強制性的,設計師必須在推動分級之前在本地進行開發),還是Git足夠靈活以便按原樣工作?

我對Git相當陌生,但已經讀過只推送到裸倉庫。這是必要的嗎?如果是這樣,這可能是中轉站點嗎?或者它應該是它自己的實體(即像example.local這樣的內部服務器)?

會良好的工作流程是這樣:

  1. 用戶提取和合並的裸庫到本地存儲庫。
  2. 用戶在本地開發並將更改提交到本地存儲庫。
  3. 用戶按下在example.local(或類似的東西)
  4. 用戶拉動從純倉庫變化到分段存儲庫dev.example.com
  5. 當批准的變更到純倉庫,用戶拉動從純倉庫到生產版本庫的修改example.com

我這個工作流程唯一的問題是,裸倉庫似乎是不必要的......不是嗎?最後,我知道本地存儲庫上會記錄什麼(用戶更改,提交等),但我不清楚將在裸存儲庫上記錄的內容(推後),分段(在拉)和生產(拉動之後);上述所有步驟都可以被輕鬆跟蹤和記錄嗎?

感謝您的任何和所有的建議/答案!

+0

我要指出的是,這些在建LAMP服務器上規模不等的網站。其中許多是用Wordpress開發的。 – user527480 2010-12-02 04:36:40

回答

3

這裏是一個interestion git的工作流程:http://nvie.com/posts/a-successful-git-branching-model/

如果你的開發人員和設計人員不熟悉命令行界面,使用GUI git的包裝,有幾種:gitxgitboxgit tower,只需將它們谷歌得到他們的網站。找到一個適合你的團隊的工具。

最好的工作流程是滿足您團隊需求的工作流程,並且可能隨時間而改變。

0

Git的靈活性足以工作嗎?

非常多。

我用來做什麼的,讓設計師在design分支或工作的東西類似命名的,總是有一個命令推的方式。

開發者合併從設計分會時,他更新服務器的內容。事實上,在自動部署腳本中,合併將是一個命令。

到舞臺的設計變更,而不是dev的變化,可以隨時切換分支在臨時的設計分會。爲此,您可以向設計人員提供一個部署腳本,該腳本可以推送最新的更改,切換到設計分支。

話雖這麼說,鼓勵設計師使用git,慢慢地逐步。首先將它們掛接到stash命令。並拉。然後,讓他們創建不同的分支。

至於裸倉庫,這是保持所有的人都在同步一種標準的方式,並沒有技術上的理由有一個額外真的。除了大多數人使用github或具有良好Web UI的等效遠程備份服務來進行通信和協調,這實際上成爲中央裸倉庫。

0

我沒有看到使用裸倉庫的原因。我寫了一篇關於簡單開發過程的短文: A simple developer process with Git

這不完全是你的情況,而是一個更一般的解決方案。使用功能分支的想法是允許人們將他們的改變推送到主要的回購站,而不會讓所有人都工作混亂,並且更容易合併其他人的更改。

如果我這樣做,這是我會做什麼:

  1. 安裝Gitorious。沒有必要,但有助於跟蹤事物,
  2. 在Gitorious中創建您的生產存儲庫。
  3. 向生產庫中添加一個post-hook,當收到更新時,會自動更新生產服務器(可能會延遲到第二天晚上,哪種最適合您)。
  4. 在Gitorious中創建開發存儲庫。
  5. 向更新開發服務器的開發庫添加一個類似的post-hook。

這種設置有很多優點:

  • 開發人員不需要擔心更新網站。他們所需要做的就是推動開發回購。
  • 測試通過後更新生產服務器非常簡單,只需一次推送即可(生產存儲庫永遠不會從開發服務器以外的地方更新)。你甚至可以在post-hook中添加一個部分,如果推送了一個標籤,就會這樣做。因此,您可以使用標籤將可釋放版本標記爲版本號,這會自動更新生產服務器。
  • 有人可以將某些東西搞砸(「哎呀!我的意思是推動開發,但推到推動」)的點少得多。