如何将存储库 (old_rep) 作为目录移动到另一个存储库 (new_rep) 而不会丢失存储库的历史记录和文件?
这是我从其他堆栈问题中尝试的。我在 new_repo 中有文件,如目录、.txt、.sql 文件和历史记录。当我运行下面的代码时,看起来 --mirror 正在将 old_rep 中的所有内容替换为 new_rep。
mkdir foo
cd foo
git clone --bare ssh://git@test.test.test/test/old_rep.git
cd old_rep.git
git clone --bare ssh://git@test.test.test/test/new_rep.git
cd ..
rm -rf old_rep.git
最佳答案
假设您要移动 old_repo
中的所有内容进入目录dir1
的 new_repo
:
在
old_repo
创建dir1
, 将所有文件和目录从工作目录移动到dir1
并提交。这就是
old_repo
的全部内容.下面的其他步骤发生在new_repo
中.在
new_repo
使用git remote add old_repo <path-to-old-repo>
将旧仓库添加为新仓库的远程仓库。替换<path-to-old-repo>
使用旧存储库的实际路径(完整或相对)。我假设您在本地计算机上有两个存储库。确保没有未提交的更改。如果有,则将它们提交到一个分支或将它们 stash 起来。
运行
git fetch old_repo
将旧仓库中的提交提交到新仓库中。假设您已经 checkout 要从old_repo
导入代码的分支, 运行git merge old_repo/master
.替换master
来自old_repo
的实际分支你想导入。检查
new_repo
中的一切是否正常并且您拥有来自old_repo
的所有文件以及他们的历史。清理。只有在仔细检查第 5 步后,运行
git remote remove old_repo
取消链接 repo 协议(protocol),然后,如果您确定不需要old_repo
中的任何内容,您可以删除目录old_repo
位于。我会在一段时间后(1-2 周)进行删除,以确保我不会丢失任何东西。就这些。
关于git 将仓库作为目录移动到另一个仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640733/