将git存储库钉在另一个上面?

时间:2017-03-19 20:37:24

标签: git

我有一个我正在研究的项目,并假装它已经提交了a1,a2,a3,a4和a5。

我决定从头开始重新启动项目并创建一个新的存储库。它提交了b1,b2,b3,b4,b5。

但我最终决定a1-a5的历史与b1-b5有关,所以我希望历史如此:

  • a1 - > 1
  • a2 - > 2
  • a3 - > 3
  • a4 - > 4
  • a5 - > 5
  • b1 - > 6
  • b2 - > 7
  • b3 - > 8
  • b4 - > 9
  • b5 - > 10

所以我的想法是

  1. 从项目开始
  2. 将项目b添加为远程分支
  3. 现在我的第一次尝试是git merge --allow-unrelated-histories b/master,但这会将master分支更改为只有1,2,3,4,5,10的历史记录。

    如何将存储库b的主服务器中的所有五个提交放在存储库a的主服务器之上?

1 个答案:

答案 0 :(得分:1)

  1. 从项目开始
  2. 将项目b添加为远程分支
  3. 这是对的。最后一步是在a之上重新定义b。假设有一个主人,并且b被添加为远程b ...

    git checkout b/master
    git rebase master
    

    根据a和b的编辑方式,您可能会遇到很多冲突。

      

    现在有没有办法追溯性地将旧提交添加到A rm -rf整个存储库(除了.git)以便旧文件不会渗透到新文件中? < / p>

    如果您要删除A中的所有内容,则会告诉我这仅用于历史/考古目的。在这种情况下,将A放在A顶部是没有意义的。相反,将A设为档案分支。

    在B ......

    * git remote add a path/to/a
    * git fetch a
    * git branch a a/master
    * git remote rm a
    

    现在您的存储库有一个分支供以后检查。