GIT更改基本/根文件夹

Mar*_*rcx 5 git rebase

我有一个很长的(〜2年)回购,有很多提交/分支,现在由于某些原因我需要将存储库的根文件夹更改为上面的一个文件夹.

一些例子来澄清这个概念.

我的存储库位于一个文件夹中:

c:\workspace\test\src\
Run Code Online (Sandbox Code Playgroud)

所以在我的repo中有上述文件/子文件夹中的所有更改.

我想将存储库移动到:

c:\workspace\test
Run Code Online (Sandbox Code Playgroud)

从现在开始可以添加测试文件夹中保存旧存储库历史记录的所有更改.

所以在文件夹中标记的所有旧提交"\"现在应该在文件夹中检查"\src"

对于旧的提交,我可以或不可能(它确实无关紧要)文件夹的实际内容..

那可能吗?

我希望我解释的是可以理解的..

Gui*_*ont 0

如果我正确理解你的问题,如果你从一个干净的 git repo 开始(git status说“没有什么可提交的,工作目录干净”),你只需要将.git目录从移动c:\workspace\test\src\c:\workspace\test\.

然后,您必须对新布局中的所有文件进行“大”提交。Git 会将这个新的提交视为一个重大举措。不需要新内容,因为文件是相同的。Git 只会src在他的目录中注册新的树布局(带有 ).git


src重新阅读这个问题让我觉得您可能希望在子目录中保留旧的提交

如果是这种情况,您需要使用类似的方法完全重写您的 Git 存储库历史记录git filter-branch --tree-filter '...'