繁体   English   中英

更改 Git 存储库的根目录

[英]Change the root directory of a Git repository

我有以下源结构:

/dir1
    file1
    file2
    file3

不需要dir1 ,因为存储库本身可以像一个文件夹,所以我希望我的 git 存储库看起来像这样:

file1
file2
file3

我应该怎么做才能实现这一目标?

免责声明:这将改写历史并成为任何已经克隆您的存储库的人的 PITA。 你不应该在已发表的历史上这样做。

也就是说,您应该能够使用 Git 的filter-branch命令重写所有树。 在使用之前一定要了解所有的含义(请阅读联机帮助页;有备份)。

git filter-branch \
  --subdirectory-filter dir1 \
  --tag-name-filter cat \
  -- --all

注意。 此命令还将保留您的移植并替换参考。

您可以将 .git 移动到子目录中(不要忘记您的 .gitignore)。 然后运行 ​​git init :

重要:在移动之前做最后一次提交(我会解释它......)

mv .git ./dir1/.
git init .
git add .
git commit

在移动之前做最后一次提交很重要:git 使用文件的哈希来识别它们。 未更改的文件被视为“重命名”。 如果您在移动之前有未提交的文件,它会为每个修改过的文件记录一些“删除”“添加”,并且您将丢失这些文件的历史记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM