Git 将模块从一个回购协议移动到另一个回购协议

Git 将模块从一个回购协议移动到另一个回购协议,git,github,Git,Github,我对git比较陌生,需要做以下工作 给定回购a中的一个模块X,我想把它移动到回购B 我需要这样做,同时保留某些作者的历史。i、 e保存“joe”和“bob”的提交历史记录,不保存其他内容 有什么办法可以做到这一点吗 谢谢 您可以这样做: 首先在本地添加“回购a” git remote add repoa https://github.com/user/repoa.git 然后做一个吉特推到回购 git push repoa git push repob 就像eadd在本地的“回购b” gi

我对git比较陌生,需要做以下工作

  • 给定回购a中的一个模块X,我想把它移动到回购B
  • 我需要这样做,同时保留某些作者的历史。i、 e保存“joe”和“bob”的提交历史记录,不保存其他内容
  • 有什么办法可以做到这一点吗


    谢谢

    您可以这样做:

    首先在本地添加“回购a”

    git remote add repoa https://github.com/user/repoa.git
    
    然后做一个吉特推到回购

    git push repoa
    
    git push repob
    
    就像eadd在本地的“回购b”

    git remote add repob https://github.com/user/repob.git
    
    然后做一个吉特推到回购

    git push repoa
    
    git push repob
    
    这样做将提升整个存储库的当前状态

    现在分别克隆存储库:

    cd /path/where/you/want/new/repos/to/be
    git clone https://github.com/user/repoa.git repoa
    git clone https://github.com/user/repob.git repob
    
    (其中,
    repoa
    ,因为第二个参数是要克隆到的目录)

    对于每次运行
    git rm-r
    ,以及要从该repo中删除的目录/文件,例如repo-a:

    git rm -r src/repob docs/repob
    
    对于回购-b,再次重复上述步骤

    然后,对于每个存储库,运行以下命令以分期删除以进行提交:

    git add -u
    
    然后像通常那样进行提交:

    git commit -m "Deleted files from repo b"
    
    然后推

    git push origin
    
    对repo-b再次重复最后3个命令

    这将创建两个独立的存储库,其中包含repo中所有文件的完整历史记录,不幸的是,我不知道如何保留“仅该repo中的文件”的历史记录。

    可能的重复项在此处没有定义“模块”,这可能很重要。同时,请注意,在Git中,历史记录是提交。两者密不可分。每次提交都是一个快照;历史记录是通过随时间播放快照形成的。可能会重复