本文由云 + 社区发表
摘要: 为了让项目能实现 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 过来, 有兴趣的朋友可以自己尝试.
附
Git 常用命令 https://qupzhi.com/git-start2/#more
此文已由腾讯云 + 社区在各渠道发布
获取更多新鲜技术干货, 可以关注我们腾讯云技术社区 - 云加社区官方号及知乎机构号
来源: https://www.cnblogs.com/qcloud1001/p/10310573.html