如何将存储库(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
答案 0 :(得分:3)
假设您要将old_repo
中的所有内容移至dir1
的{{1}}目录中:
在new_repo
create old_repo
中,将所有文件和目录从工作目录移至dir1
并提交。
这都是dir1
。以下其他步骤发生在old_repo
。
在new_repo
中使用new_repo
将旧回购添加为新回购的远程。将git remote add old_repo <path-to-old-repo>
替换为旧存储库的实际路径(完整或相对)。我假设您在本地计算机上有两个存储库。
<path-to-old-repo>
以获取旧回购提交到新回购的提交。假设您已经检查了要从git fetch old_repo
导入代码的分支,请运行old_repo
。将git merge old_repo/master
替换为您要导入的master
的实际分支。old_repo
中的所有内容是否正常,并且您拥有new_repo
中的所有文件及其历史记录。old_repo
取消链接回购,然后,如果您确定不需要git remote remove old_repo
中的任何内容,则可以删除old_repo
所在的目录位于。我会在一段时间(1-2周)后去除,只是为了确保我不会丢失任何东西。答案 1 :(得分:0)
这是我发现要简单得多的事情。下面的答案假设像我一样,你不像以前那样关心这个旧的 repo,因为它是旧的,或者新的 repo 只是旧 repo 的存储。这就是为什么我不介意这样做。
git add .
然后 git commit
然后 git push