git push如何至两个git仓库

分别有仓库 A(github),B(JAE 的 git),本机为C。

A, B都进行了 README.md 的初始化,就是说,这个情况下,已经存在冲突了,log不一致。

先从仓库A获取下来,C 修改完毕提交,顺利提交至A,

此时 如何从 C 提交到B,需要进行多少操作,使得仓库记录 A 和 B 的log一致(后面一致即可)?

这个问题我尝试过,没解决。

阅读 14.8k
评论 2014-08-24 提问
    7 个回答

    这么久了,经过了 git 的不断使用,也知道了具体方法。

    假设以 a 仓库作为最终的使用仓库, b为发布仓库。分支都为 dev

    现在我自己回复自己吧:

    第一步,增加远程仓库
    git remote add origin1 git.a
    git remote add origin2 git.b

    第二步,本地确保没 change 的东西,拉去远程仓库地址,然后进行 rebase 。
    git fetch origin1
    git rebase -i origin1/dev

    如果有冲突,解决完。

    git push -f origin1 dev
    git push -f origin2 dev

    done.

    评论 赞赏 2015-01-27
      评论 赞赏 2015-08-17
        小龙
        • 121
        评论 赞赏 2014-08-24

          保持一个分支(假设为master分支)所有log相同的方案:

          1. 添加B到remote列表中 git remote add jae git://xxxxx@xxxx.git
          2. 假设现在C已经同步了A并且完成了修改 那么需要提交C到B上去,这时候需要强制提交,避免出现conflict无法提交的问题:git push jae master:master --force

          推上去后C和B的log就保持一致了,之后就可以继续操作

          如果你想保持所有branch都一致这我就建议你干脆在jae上新建一个项目把C推上去

          希望能帮到你

          评论 赞赏 2014-08-24

            我猜想,在从任一远程仓库拉取之前,先

            git stash

            然后拉取,修改,添加,提交,推送。再

            git stash pop

            继而有冲突解决冲突,没有冲突的话,直接拉取另一远程仓库代码,然后按部就班地修改,添加,提交,推送。
            全靠猜的,具体的还请题主自己实践一下。仅供参考。

            评论 赞赏 2014-08-26

              我想你应该是已经知道怎么添加多个远程仓库了,这个我就不说了。

              直截了当: C=A时 在C下 git push -f 'B远程仓库' '分支' 这样B虽然跟A C 都会有冲突,但是会被强制覆盖成C的状态。 所以是 A=B=C 。 之后的LOG就会一致了。-f参数表示强制推送的意思。
              just try it

              评论 赞赏 2015-04-17
                songgl
                • 1
                • 新人请关照

                配置镜像仓库即可
                1.git remote add --mirror=push --mirror=fetch repoName url
                2.git push repoName master

                评论 赞赏 2015-10-10
                  撰写回答

                  登录后参与交流、获取后续更新提醒