git push如何至兩個git倉庫
PHP中文网
PHP中文网 2017-04-27 09:02:42
0
7
823

分別有倉庫 A(github),B(JAE 的 git),本機為C。

A, B都進行了 README.md 的初始化,就是說,這個情況下,已經存在衝突了,log不一致。

先從倉庫A取得下來,C 修改完畢提交,順利提交至A,

此時 如何從 C 提交到B,需要進行多少操作,使得倉庫記錄 A 和 B 的log一致(後面一致即可)?

這個問題我嘗試過,沒解決。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(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.

漂亮男人

其實可以把初始化的檔案清除,再本地.git/config增加上另外一個遠端倉庫的位址,如:
[remote "all"]
url = https://github.com/segment/test.git
url = https://git.oschina.net/segment/test.git
後面的操作都一樣,提交程式碼會同步提交到兩個倉庫裡了。

阿神

沒試過兩個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推上去

希望能幫到你

伊谢尔伦

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

git stash

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

git stash pop

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

Peter_Zhu

我想你應該是已經知道怎麼增加多個遠端倉庫了,這個我就不說了。

直截了當: C=A時 在C下 git push -f 'B远程仓库' '分支' 這樣B雖然跟A C 都會有衝突,但是會被強制覆蓋成C的狀態。 所以是 A=B=C 。 之後的LOG就會一致了。 -f參數表示強制推送的意思。
just try it

我想大声告诉你

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板