2017-06-16 228 views
0

主分支下面有文件夾結構:git的子文件夾到分支保存文件夾鏈接

  • 常見
    • A.TXT
  • 模塊
    • ABC
      • 的abc.txt
    • DEF
      • def.txt

現在我想創建一個主新分行與子目錄到像下面新枝:

  1. 普通科應該有共同的文件夾& a.txt中的文件夾

    • 常見
      • 下A.TXT
  2. ABC分支應該有stucture像模塊\ ABC \ ABC .txt

    • 模塊
      • ABC
        • 的abc.txt
  3. DEF分支應具有結構等模塊\ DEF \ def.txt
    • 模塊
      • DEF
        • def.txt

改造成最通用之後,ABC & DEF分支機構要合併回主。

+0

我可以使用git filter-branch --subdirectory-filter嗎? – Chand

回答

0

您可以根據master創建3個不同的分支,然後從每個子目錄中刪除兩個子目錄,以便您可以將3個分支與其中的每個子目錄相關聯。此外,您還可以保留該子目錄的歷史記錄。

git branch --no-track "$subdirectory1" master 
git checkout "$subdirectory1" 
git push --set-upstream --progress origin 

master再次合併ABCDEF不會放棄任何東西,但可能會導致衝突。因爲master結構將具有Common,ABCDEF。新創建的ABC將不具有commonDEF,並且將導致從master中刪除CommonDEF

但是,對於合併,您可以使用。

git checkout master 
git merge subdirectory1 
+0

我想保留歷史並將其合併回主 – Chand

+0

如果其他子文件夾被刪除並且只將subdirectory1文件夾壓入子目錄1分支,這個歷史記錄也會被合併到主分支中嗎? – Chand

+0

是的,那就是來自子目錄1的SHA也會在主人的歷史中。 –