我想将存储库下的文件夹移动到另一个存储库的根目录下,如下所示
repo1
->文件夹0(git @ git ... net:/folder0.git)
->文件夹1
->文件夹2
-> folder3
到
repo2(与repo1相同的gitlab)
->文件夹1
->文件夹2
-> folder3
即所有文件夹(1,2,3)应该位于repo2的根目录中,以便所有文件夹(1,2,3)都可以直接放在(git @ git ... net:)
下我尝试过的是
是逐个文件夹复制的文件夹,会丢失历史记录
我需要的是-复制子文件夹下的所有文件夹并将其移至根目录
答案 0 :(得分:0)
如果将其推送到repo1中,则可以从repo2中挑选git。
在repo2的.git/config
中的添加:
[remote "copyFrom"]
url = git@github.com:{repo1Url}
fetch = +refs/heads/*:refs/remotes/copyFrom/*
添加“ copyFrom”后,repo2将拥有一个新的远程站点,因此您可以从repo1中获取并樱桃选择提交(就像origin
一样)
git fetch copyFrom
git cherry-pick -xn {commit-from-repo1}
请注意,如果repo1中的代码与repo2完全不同,并且文件夹的提交在代码中包含其他更改,则此解决方案可能会很杂乱
答案 1 :(得分:0)
我在下面的链接中找到了更简单的方法
这对我有用。我在上述步骤中遇到的问题是
在此命令git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME BRANCH-NAME
中
BRANCH-NAME
是主控
如果由于保护问题提交时最后一步失败,请遵循-https://docs.gitlab.com/ee/user/project/protected_branches.html