Git合併不同url的專案

qcloud發表於2019-01-23

> 本文由雲 + 社群發表

> 作者:工程師小熊

摘要:為了讓專案能實現 Git+Gerrit+Jenkin 的持續整合,我們把專案從 Git 上遷移到了 Gerrit 上,發現有的同事在老 Git 提交程式碼,因為 Gerrit 做了同步,在 Gerrit 上有新提交的時候就會重新整理老 git,這樣就會把他提交的程式碼沖掉。這個時候我就必須要在兩個相似專案之間合併提交了。

步驟

img將老 Git url 加到我們新 Git 的本地

  • 使用命令git remote add [shortname] [url]將老 Git url 加到我們新 Git 的本地
  • 這裡我把他取名為 gitoa_web(隨便取)

img檢視

  • 使用命令git remot -v檢視遠端倉庫的情況
  • 可以看到此處我們有三個遠端倉庫分別名為gerritgitoa_weborigin

img同步程式碼

  • 使用命令git fetch gitoa_web重新整理遠端倉庫到本地
  • 字串 gitoa_web 指代對應的倉庫地址了.比如說,要抓取所有 gitoa_web 有的,但本地倉庫沒有的資訊,可以用

img合併專案

  • 使用命令git merge gitoa_web/master合併專案

  • gitoa_web
    

是指代倉庫,

master

指代分支,當然如果有需要也可以合併別的分支過來

img報錯

  • 發現不同 email 地址錯誤不能成功提交

  • 因為這個commit不是我的

img修正錯誤

  • 把 email 地址更新成我的
  • 再提交就成功了

小結

知識點:

  1. git merge還可以合併其他專案的到本專案
  2. git fetch 倉庫名可以指定同步哪個倉庫
  3. git remot -v檢視本地有哪些遠端倉庫的情況,包含各個倉庫 url

本次我們對以下命令加深了理解

git remote                                    #不帶引數,列出已經存在的遠端分支
git remote -v                                 #(-v是–verbose 的簡寫,取首字母)列出詳細資訊,在每一個名字後面列出其遠端url
git remote add [shortname] [url]              #新增遠端倉庫
git fetch origin                              #字串 origin 指代對應的倉庫地址了.比如說,要抓取所有 origin 有的,但本地倉庫沒有的資訊,可以用

ps: 這裡git remote add以後,我認為還能用cherry-pick來加不同倉庫的commit過來,有興趣的朋友可以自己嘗試。

Git 常用命令

此文已由騰訊雲 + 社群在各渠道釋出

獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社群-雲加社群官方號及知乎機構號

更多原創文章乾貨分享,請關注公眾號
  • Git合併不同url的專案
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章