1

我們有一個CMS系統,目前這一工作流程:Git的工作流程爲CMS

  • 我們對整個CMS
  • 每個分支代表着網站一個GitHub的庫中,並且主分支就是我們開發新的功能 - 這有幾個好處(我們可以比較網站,版本升級是唯一的合併,該CMS版本維護)
  • 我們儲存在git的站點特定的文件夾也是如此,因爲版本是必要的這些文件夾以及

我的第一個問題是,你對這個工作流程有什麼看法?這是完全錯誤的方式嗎?

但是我們在這個工作流程中遇到了一些問題。

  • 當我們使用git merge(master - > site)升級新版本時,站點特定的文件夾也被合併,不僅僅是核心CMS文件。合併後(和提交前),我可以恢復/重置它,但這不是我最喜歡的解決方案,有點複雜。
  • 有時候我們會爲網站開發一項新功能,當它完成時,我們會將它合併到主服務器上,以供以後的新版本使用。在這種情況下,版本升級合併後,我們可以在git歷史記錄中看到所有站點特定的提交。我知道這是git的工作原理,它只是一個小問題,但有點煩人。

我有一些計劃,閱讀等以後解決它:

  • 獨立的存儲設備爲核心CMS文件,而該網站的特定文件夾
  • Git的子模塊的解決方案 - 它是不明確的我呢,但也許是一個更好的解決方案
  • 與.gitattributes文件播放,並與「合併=我們」的配置特定地點的文件夾 - 但如果我知道對不對,這是工作,只有當合並有衝突給定的目錄。
  • 其他?

那麼,什麼是你的這種情況建議? 我希望你的情況清楚。 感謝您的幫助:)

亞當

回答

0

Separate repository for the core CMS files, and the site specific folders.

這是你應該做的事情,因爲你的git的歷史將從分離受益。

我會做出不同的回購爲每一個,並將其使用框架

你現在的工作流程:

W2 <- M -> W1 
     | 
     D 

d - 開發, 米 - 法師, W - 網頁

建議的工作流程:

W2 M W1 
| | | 
D1 D2 D3 

其中每個W ebsite將抓取M aster作爲工具,而不是git回購。

+0

感謝您的回答。建議的解決方案(不同的站點回購)是我認爲的「正常」解決方案,但是使用這個解決方案,我無法輕鬆地使用git比較網站版本,文件和其他內容。 我正在等待其他技巧,但這是一個很好的解決方案 – catchke2ro

+0

http://stackoverflow.com/questions/4380019/git-merging-and-submodules 也許這將有所幫助。使它們成爲主CMS的子模塊。 –