2010-01-04 162 views
2

我有,我不想失去歷史的合理量的現有的Git倉庫。問題是我想添加在當前git根目錄上方的目錄。我知道以下不會工作:可以將外部目錄添加到現有的Git倉庫

 
git add ../[dir]/[filename] 

這似乎是我需要做一個導出/導入來得到這個工作。任何人都可以幫我挽救我的歷史嗎?我在正確的軌道上,還是有一個更簡單的方法來做到這一點?

回答

0

因此,這裏是我是如何解決這個我自己。由於原來的文件佈局

 
top-+ 
    | 
    |-foo-+ 
    |  |-page1 
    |  |-.git 
    | 
    |-bar-+ 
      |-page2 

我想在酒吧目錄添加到我的倉庫,並有「頂」目錄內直接git的文件。

  • 使用Git MV

  • 舉槓鈴目錄到原來的FOO目錄和現有repositry中創建一個新的foo的目錄

  • 將所有版本的文件複製到新富目錄文件系統現在應該是這樣的:

 
top-+ 
    | 
    |-foo-+ 
      |-.git 
      |-foo-+ 
      |  |-page1 
      | 
      |-bar-+ 
       |-page2 

  • 動原富目錄上一級
 
/-+ 
    |-top/ 
    |-foo-+ 
     |-.git 
     |-foo-+ 
     |  |-page1 
     | 
     |-bar-+ 
       |-page2 

  • 刪除頂部和重命名FOO頂部
  • 提交

版本歷史記錄保持在變化,你有一個提交消息以顯示目錄結構如何更改。

0

您可以用符號鏈接是目錄到您的git目錄:

ln -s ../[dir] externaldir 
git add externaldir 
+0

感謝您的建議。這是解決問題的一種方法。但是,如果我忘記在結帳時刪除符號鏈接,那麼我可以將文件暴露給我不想公開的不受信任的來源。我正在尋找一種不會改變現有文件系統佈局的解決方案。 – neomorphic 2010-01-04 18:17:53

+0

如果您在另一個工作目錄中的佈局與第一個目錄不同,則可以考慮硬鏈接到目錄,以便不暴露您的文件。 – 2010-01-04 19:00:37

+0

一方面你希望你在'../ dir'文件版本控制下放置,在其他 - 不被暴露在不受信任來源。你能澄清嗎? – 2010-01-04 19:22:41

相關問題