首頁  >  問答  >  主體

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 天前792

全部回覆(7)我來回復

  • 某草草

    某草草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.

    回覆
    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
    後面的操作都一樣,提交程式碼會同步提交到兩個倉庫裡了。

    回覆
    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

    回覆
    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推上去

    希望能幫到你

    回覆
    0
  • 伊谢尔伦

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

    我猜想,在從任一遠端倉庫拉取之前,先

    git stash

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

    git stash pop

    繼而有衝突解決衝突,沒有衝突的話,直接拉取另一遠端倉庫代碼,然後按部就班地修改,添加,提交,推送。
    全靠猜的,具體的還請題主自己實踐。僅供參考。

    回覆
    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

    回覆
    0
  • 我想大声告诉你

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

    設定鏡像倉庫即可
    1.git remote add --mirror=push --mirror=fetch repoName url
    2.git push repoName master

    回覆
    0
  • 取消回覆