Git合併不同url的項目

本文由雲+社區發表

作者:工程師小熊

摘要:爲了讓項目能實現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常用命令

此文已由騰訊雲+社區在各渠道發佈

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章