git 将仓库作为目录移动到另一个仓库

标签 git github

如何将存储库 (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 中的所有内容进入目录dir1new_repo :

  1. old_repo创建 dir1 , 将所有文件和目录从工作目录移动到 dir1并提交。

    这就是 old_repo 的全部内容.下面的其他步骤发生在 new_repo 中.

  2. new_repo使用 git remote add old_repo <path-to-old-repo>将旧仓库添加为新仓库的远程仓库。替换 <path-to-old-repo>使用旧存储库的实际路径(完整或相对)。我假设您在本地计算机上有两个存储库。

  3. 确保没有未提交的更改。如果有,则将它们提交到一个分支或将它们 stash 起来。

  4. 运行 git fetch old_repo将旧仓库中的提交提交到新仓库中。假设您已经 checkout 要从 old_repo 导入代码的分支, 运行 git merge old_repo/master .替换 master来自 old_repo 的实际分支你想导入。

  5. 检查 new_repo 中的一切是否正常并且您拥有来自 old_repo 的所有文件以及他们的历史。

  6. 清理。只有在仔细检查第 5 步后,运行 git remote remove old_repo取消链接 repo 协议(protocol),然后,如果您确定不需要 old_repo 中的任何内容,您可以删除目录 old_repo位于。我会在一段时间后(1-2 周)进行删除,以确保我不会丢失任何东西。

  7. 就这些。

关于git 将仓库作为目录移动到另一个仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640733/

相关文章:

github - 如何使用 GitHub API 在 GitHub 中搜索代码?

git - 为什么我不能为 readthedocs 克隆一个 git repo 来构建文档?

svn - 从 svn 迁移到 git : How do I create . gitignore 文件以获得连接不稳定的大型存储库?

类似 Github 的托管,带有私有(private)资源,公共(public)票务系统

git - 如何忽略此文件模式?

git - 从原点重新设置同一分支的基准 (git rebase origin/<same?>)

git - 强制 Git rebase

Git pull 在提交日志中产生无关的 "Merge branch"消息

git - 上传文件到github的一个分支

python - pip install 在 OpenShift 中失败,错误信息为 Permission Denied