我有一个包含许多文件和项目的大型存储库。此存储库中的子文件夹之一必须是一个新的、独立的存储库。
我不需要在新仓库中保留历史记录,但我必须能够随时使用原始仓库的更改更新新仓库。
这个想法是旧的 repo 是一个私有(private)的内部 gitlab,而新的 repo 是已部署项目的公共(public) repo。
我该怎么做?
最佳答案
您可以将新仓库视为旧仓库的子树,并通过git subtree push
用旧仓库更新新仓库。详细步骤如下:
假设旧仓库有文件夹 project1
、project2
、project3
等用于不同的项目。并且 project1
已在新的 repo 中进行管理。
首先,将旧仓库中的 project1
文件夹替换为新仓库。
# Copy project1 folder out of old repo
# Delete the project1 folder in old repo, then use the commands in old repo
git add .
git commit -m 'delete project1 folder in old repo'
git subtree add --prefix=project1 <URL for new repo> master
现在旧仓库中的 project1
文件夹是新仓库的子树。您可以在旧存储库中进行更改和提交(git commit)
。
当你需要用旧的repo更新新的repo时,你可以使用:
git subtree push --prefix=project1 <URL for new repo> master
现在将更新新的 repo。
关于Git - 将子文件夹推送到不同的存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45565464/