如何将一个仓库完全复制到具有历史记录的另一个仓库中。
我不想使用fork或镜像选项,我尝试了分支过滤器选项,但它仅限于一个目录。 git filter-branch --subdirectory-filter /../ RepoA / dire1
Example: Source Target Requirement ------ ---- ------------------- RepoA RepoB(new Repo) Copy entire history - Dir1 - Dir1 - Dir2 - Dir2
你能建议吗?
答案 0 :(得分:0)
您可以尝试使用--index-filter
代替--subdirectory-filter
。
$ git filter-branch --index-filter \
'git ls-files -s | sed "s#\t#&RepoA/#" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
请结帐this thread以获得更多信息。
如果RepoB是新的新仓库。 Yon也可以尝试以下命令。将RepoA复制到本地计算机,删除RepoA的远程源,然后将远程URL添加到RepoB。参见以下示例:
git clone http:/url/repoA
cd repoA
git pull origin branchName
git remote remove origin
git remote add origin http:/url/repoB
git push -u origin --all
您也可以尝试使用git子模块。检查git document以获得更多信息。