[英]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.