簡體   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