GIT - 如何正确'git init'一个git存储库的'upper'目录

时间:2015-11-09 11:33:07

标签: git

我有一个目录./a/b/。只有b是一个git repo。现在我已经确定git repo树应该从a开始,并包含(如果可能的话)有关b repo的所有信息。

我试图从git init开始a并提交。但是当克隆a时,它会有一个空b。 (这很有趣,因为据我所知git通常会忽略空目录)

有可能以某种方式这样做吗?

2 个答案:

答案 0 :(得分:1)

只需将.git文件夹剪切并粘贴到a并添加所有内容即可。

mv .git ../.git  #move the repo  
cd .. #go to the parent dir
git add --all  #add everything
git commit -m 'moves everything into a subfolder'  #commit everything

git会将所有内容识别为“重命名”:(带有一个文件的示例)

  

git status
  在分公司主人上   要改变的变化:
     (使用“git reset HEAD ...”来取消演出)

     

重命名:test - > B /测试

答案 1 :(得分:0)

我建议您在./a/b中保留您的仓库,并通过./a/b/a/b将所有跟踪的文件移至子目录git mv filename。在此之后,您的仓库具有正确的结构,这是真正重要的一切。然后,您可以将整个仓库移至.以获得您想要的内容。 git mv支持使用通配符来简化这一过程。

相关question。您可以通过此answer获得更多自动化。