2010-01-04 80 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

相关问题