首页 > git push如何至两个git仓库

git push如何至两个git仓库

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

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

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

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

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


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

git stash

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

git stash pop

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


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

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


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


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


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


没试过两个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


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

希望能帮到你

【热门文章】
【热门文章】