2012-10-05 105 views
0

我有一個我想要版本控制的個人項目,但我不確定如何使用git來管理它。下面是該文件夾結構的例子:使用git管理外部文件的多個子項目

project 
project/public/plugin1 
project/public/plugin2 
project/lib/plugin1 
project/lib/plugin2 

我要爲每個插件或模塊個人信息庫,但似乎有點棘手,因爲不是所有的插件文件在同一文件夾下組合在一起。所以我需要跟蹤這些目錄爲plugin1:

project/public/plugin1 
project/lib/plugin1 

,類似的還有plugin2:

project/public/plugin2 
project/lib/plugin2 

在公共文件夾的文件,如CSS和JS,所以你可以說更重要文件是lib中的文件。我應該在該文件夾中設置存儲庫並以某種方式嘗試添加外部公用文件夾嗎?但當然git不會讓我這樣做。我已經從另外一個問題想這還有:

git --work-tree=/ add /project/public/plugin1 

我仍然得到一個錯誤說這是庫外。

由於這只是一個個人項目,我不需要訪問或做任何遠程操作,希望能夠消除一些併發症。任何想法正確的方式來設置?謝謝。

+0

你爲什麼要分開它們?我想你可以用子樹來做到這一點,但它可能會讓事情變得複雜一些。你認爲這是非常必要的嗎? –

+0

@Renato Zannon我需要將它們分開,因爲每個插件都是單獨發佈的。所以也許plugin1會在1.5版本,而plugin2會在2.1版本等等。 – user1699176

+0

我認爲這應該由您使用的語言/框架來處理,而不是git。您正在開發的技術是什麼? –

回答

0

看起來像一個老問題,但對於任何看這個的人來說,你想要做的就是使用git子模塊。

  1. 你的主項目中創建回購協議,任何模塊(庫,插件,模塊等)
  2. 您的結構可能會有所不同,但你想創建引用包含其他倉庫主要儲存庫子模塊你的插件等

    # git submodule add git://path-to-your-repo.git modulename 
    
  3. 需要注意的是你拉的內容到主回購和它連接到主回購協議,它允許你只拉子模塊的特定版本時,它與兼容的那個版本主要項目。以下內容將子模塊項目拖入主項目中。

    # git submodule update modulename 
    

這只是一個高度概括。嘗試閱讀http://www.git-scm.com/book/en/Git-Tools-Submodules瞭解更多詳情。