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常用命令

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

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

相關文章