本文由雲+社區發表作者:工程師小熊
摘要:爲了讓項目能實現Git+Gerrit+Jenkin的持續集成,我們把項目從Git上遷移到了Gerrit上,發現有的同事在老Git提交代碼,因爲Gerrit做了同步,在Gerrit上有新提交的時候就會刷新老git,這樣就會把他提交的代碼沖掉。這個時候我就必須要在兩個相似項目之間合併提交了。
步驟
將老Git url加到我們新Git的本地
- 使用命令
git remote add [shortname] [url]
將老Git url加到我們新Git的本地 - 這裏我把他取名爲gitoa_web(隨便取)
查看
- 使用命令
git remot -v
查看遠程倉庫的情況 - 可以看到此處我們有三個遠程倉庫分別名爲
gerrit
、gitoa_web
、origin
同步代碼
- 使用命令
git fetch gitoa_web
刷新遠程倉庫到本地 - 字符串
gitoa_web
指代對應的倉庫地址了.比如說,要抓取所有gitoa_web
有的,但本地倉庫沒有的信息,可以用
合併項目
- 使用命令
git merge gitoa_web/master
合併項目 -
gitoa_web
是指代倉庫,
master
指代分支,當然如果有需要也可以合併別的分支過來
報錯
- 發現不同email地址錯誤不能成功提交
- 因爲這個
commit
不是我的
修正錯誤
- 把email地址更新成我的
- 再提交就成功了
小結
知識點:
-
git merge
還可以合併其他項目的到本項目 -
git fetch 倉庫名
可以指定同步哪個倉庫 -
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
過來,有興趣的朋友可以自己嘗試。
附
此文已由騰訊雲+社區在各渠道發佈
獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社區-雲加社區官方號及知乎機構號