Heim  >  Fragen und Antworten  >  Hauptteil

git push如何至两个git仓库

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

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

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

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

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

PHP中文网PHP中文网2733 Tage vor791

Antworte allen(7)Ich werde antworten

  • 某草草

    某草草2017-04-27 09:04:42

    这么久了,经过了 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.

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-04-27 09:04:42

    其实可以把初始化的文件清掉,再本地.git/config增加上另外一个远程仓库的地址,如:
    [remote "all"]
    url = https://github.com/segment/test.git
    url = https://git.oschina.net/segment/test.git
    后面的操作都一样,提交代码会同步提交到两个仓库里了。

    Antwort
    0
  • 阿神

    阿神2017-04-27 09:04:42

    没试过两个git仓库的情况,我猜测可以这样:

    1.git remote add $C远程仓库名 $C远程仓库url

    2.fetch到C

    3.本地merge

    4.push $C远程仓库名 $工程名

    参考:http://www.git-scm.com/book/zh/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-04-27 09:04:42

    保持一个分支(假设为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推上去

    希望能帮到你

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-27 09:04:42

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

    git stash

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

    git stash pop

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

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-27 09:04:42

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

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

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-04-27 09:04:42

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

    Antwort
    0
  • StornierenAntwort