我有一个Git仓库,其结构如下:
这就是我想要的:
我一直在研究如何实现这个目标,到目前为止,我找到了以下内容:http://git-scm.com/docs/git-filter-branch 根据这个网站上的说明,我应该使用以下命令来达到我的目的:
这将重写提交历史,但大部分非快进式合并提交都会丢失(请参见下面的图片)。 有没有办法保留这些提交?
.git/
project-root/
abc/
xyz/
这就是我想要的:
project-root/
.git
abc/
xyz/
我一直在研究如何实现这个目标,到目前为止,我找到了以下内容:http://git-scm.com/docs/git-filter-branch 根据这个网站上的说明,我应该使用以下命令来达到我的目的:
git filter-branch --subdirectory-filter project-root -- --all
这将重写提交历史,但大部分非快进式合并提交都会丢失(请参见下面的图片)。 有没有办法保留这些提交?
![enter image description here](https://istack.dev59.com/8IEkY.webp)
project-root
文件夹没有兄弟文件夹。这些兄弟将被subdirectory-filter
移除,但不会被您在答案中描述的tree-filter
移除。我可以建议您扩展一下示例吗?在大多数使用subdirectory-filter
的情况下,您的project-root
文件夹将是其中之一。 - stochastic