可以将外部目录添加到现有git存储库

时间:2010-01-04 16:15:32

标签: git

我有一个现有的git存储库,其中包含了我不想丢失的合理数量的历史记录。问题是我想添加当前git根目录之上的目录。我知道以下不会起作用:

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

似乎我需要进行导出/导入才能使其正常工作。有人可以帮我保存我的历史吗?我是在正确的轨道上,还是有更简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:0)

你可以将dir符号链接到你的git目录:

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

答案 1 :(得分:0)

所以这就是我为自己解决这个问题的方法。给定原始文件布局

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

我想将bar目录添加到我的存储库,并将.git文件直接放在'top'目录中。

  • 在现有存储库中创建一个新的foo目录

  • 使用git mv将所有版本化文件移动到新的foo目录

  • 将bar目录移动到原始foo目录中,文件系统现在应如下所示:

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

  • 将原始foo目录上移一级
 /-+
   |-top/
   |-foo-+
         |-.git
         |-foo-+
         |     |-page1
         |
         |-bar-+
               |-page2

  • 删除顶部并将foo重命名为顶部
  • 提交更改

维护版本历史记录,并且您有一条提交消息,以显示目录结构的更改方式。