這是一個常見的情況,必須有一個明智的解決方案,儘管閱讀和豐富的Git體操頁面,我的大腦疼痛,我無法使這項工作...Git,子回購和外部庫的Web開發 - 一勞永逸的最佳戰略?
我正在與WordPress的,但這將適合大多數網站開發方案。我想用git repo來管理網站安裝,並且還可以在各個回購站中管理各種WP插件,jQuery插件和其他代碼位,這些代碼位可以輕鬆地從外部來源進行推送/推送。似乎很簡單,直到你看看細節...
的標準
「子文件夾」標準 爲每個插件的文件夾不應該被綁定到其源回購的根文件夾。許多repos有多個嵌套文件夾,例如「my-repo-name/...」,「dev /」,「test /」,「src /」,其中後面的內容是必需的。這對於保持引用URL乾淨並儘量減少公共垃圾非常重要。
「無Proxys」標準 理想的解決方案不需要額外的中間分支或回購。將更改推送到插件的外部源應該很簡單,不需要多次中間合併/推送。
「真實文件」的標準 理想整個網站外回購實際上應該包含插件subrepos(即沒有‘子模塊’)的文件。我可以被說服從這個雖然了......
「出版」的標準 必須使用rsync和/或混帳push'ing發揮出色,直播服務器
我已經看了這些五種溶液
Git的子模塊進行更改和推/拉但子模塊失敗的「子文件夾」和「真實文件」的標準
讀的Git樹/ subtr夠簡單ee merge解決了「真正的文件」問題,read-tree
實際上可以讓你引用一個分支的子文件夾,但是當我這樣做並試圖合併母版上的更改時,Git未能記住它來自子文件夾並將主合併到整個結構中ext庫跟蹤分支......所以在這個標準上失敗了。
Apenwarrs子樹擴展(here) 偉大的「真實文件」的標準,相當簡單的推/拉,直至要執行「子文件夾」的規則。最好的情況是,它似乎需要中間分支,您從遠程跟蹤分支中分離出想要的文件夾,然後將其作爲子樹添加到主分支。我沒有太多的運氣將主控上的更改合併到源回購。我仍然認爲有可能是可能性在這裏...
與外部回購符號鏈接 的最佳解決方案,直至停止GIT下面的符號鏈接。現在,它失敗的「真實文件」和「發佈」的標準
嵌套式回購 帶我看到了一個SO回答:如果你明確git add
包含另一個回購和後面的斜線的文件夾,Git爲子模塊它而是跟蹤單個文件。這看起來很有希望,但在「子文件夾」標準上失敗。
下一步是什麼?
我見過有關「稀疏結帳」的提法 - 或者是涉及分支修剪的問題。我希望避免涉及shell腳本的解決方案,或者它非常複雜,以至於每次都需要我重新學習它(很少發生),我對插件進行了更改。它比爲每個插件維護一個單獨的repo並從主CMS安裝來回複製需要更容易。
當然有人有一個簡單的功能方法,使這個常見的開發場景工作?在此先感謝您的幫助...
謝謝馬哈利。其中一個原因是許多Repos不會將他們的核心文件放在根目錄下,並經常在主分支中添加單元測試和其他文件夾。這導致醜陋的,長期的URL特別是JS庫,以及公共訪問大量不必要的文件。另一個原因是,如果您使用git推送到實時服務器(通過克隆本地回購,然後從本地推送並在服務器上合併),則需要手動推送/合併每個回購。由於現在每個人都在使用GIT,即使是jQuery插件,一個典型的網站主題可能會有10個或更多的回購。 –