腾讯云技术分享专栏 Git 合并不同 url 的项目

匿名 · 2019年01月23日 · 481 次阅读

本文由云 + 社区发表

作者:工程师小熊

摘要:为了让项目能实现 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 常用命令

此文已由腾讯云 + 社区在各渠道发布

获取更多新鲜技术干货,可以关注我们腾讯云技术社区 - 云加社区官方号及知乎机构号

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册