簡體   English   中英

一個 git 存儲庫中有多個項目?

[英]Multiple projects in one git repo?

我目前是 SVN 用戶,正在考慮將我的項目移至 git。

我使用一個 SVN 存儲庫來保存我創建的所有項目。 我的結構是這樣的:

/
    /group1
        /subgroup1
            /project1
                /branches
                    ...
                /tags
                    ...
                /trunk
                    ...
            /project2
                ...
        /subgroup2
            /project3
                ...
            /project4
                ...
    /group2
        /subgroup3
            ...
        /subgroup4
            ...
    /lib
        /lib1
        /lib2
        /lib3

如您所見,我將我的項目保存在組中,並且/lib包含項目之間共享的庫。

我選擇這種排序結構是因為:

  1. 在我學習使用 SVN 的公司中使用了類似的 repo 結構。
  2. 允許我在我的機器上運行一個svnserve作為服務/守護進程,所有項目都托管在它上面(我不喜歡文件路徑方法)。

現在……言歸正傳。 我想知道:

如果我要遷移到 git,這種工作流程將如何運作?

具體來說:

  1. 將 repo 樹遷移到 git 會很簡單嗎?
  2. 假設每個項目都需要單獨的 repo *,我如何能夠通過svnserve git 等效地為它們提供所有服務(理想情況下以類似的方式分組)。

*) 我閱讀了有關 git 的信息,我理解是這種情況,但我想與有經驗的人再次確認。

在 Git 中,最好將每個項目放在自己的倉庫中,如果需要,將庫放在另一個倉庫中,並在每個項目中用作子模塊(相當於 svn 外部)。

這是因為在 Git 中,repo 是一個比 SVN 更輕量級的概念,而且更重要的是,無法在 repo 中單獨克隆單個文件夾(不要與稀疏結帳混淆),就像您能夠結帳和處理 SVN 中的單個文件夾。 因此,如果您將所有項目都放在一個 repo 中,則必須將它們全部克隆。

使用 smart-http、git 守護程序和 ssh 服務 Git 存儲庫非常簡單。 還有Gitolite用於管理多個 repos(包括授權和身份驗證)。 閱讀有關服務 Git repos- http://progit.org/book/ch4-2.html的 ProGit 鏈接章節

進行分組時,您可以根據分組結構將存儲庫放在文件夾中,並使用智能 http 方法提供服務,其中存儲庫 url 看起來就像您在 SVN 中使用的 url,所有項目似乎都是在分組等下

除了其他答案,您還可以使用GitSlave將多個 git 存儲庫鏈接在一起。

可以將所有項目都放在一個存儲庫中,但這確實是個壞主意,因為您總是必須使用整個存儲庫。

要運行 git 服務器,如果您只需要一個用戶(您),一台安裝了 git 和 ssh 訪問權限的服務器就足夠了。 例如見這篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM