场景:程序员A提交了一个commit到gerrit上,我们叫他为commit_id1,但是还没有review,那就是没有入库,程序员B想再本地拿到这个commitd_id1,既然这个提交没有入库,很明显,B单纯执行git pull是拿不到这个提交的,那他要怎么办呢,

  目前我想到的有几种方式:第一种如果只是单纯了改了很少量的文件,我们不排斥程序员A把这几个文件直接发给B。如果改动比较大呢?第二种,程序员A本地关于这个提交生成一个patch,发给B,B再在本地把这个patch打上,这是个不错的方式。还有一种,完全不需要额外的动作,只要使用git cherry-pick就可以了。

  所以,本篇的关注点是最后一种git cherry-pick的方式,如果想要使用patch的方式,参考我的另一篇博客:https://www.cnblogs.com/zndxall/p/8093455.html

  然后B在本地执行了git cherry-pick commit_id1,接着报错 fatal: bad object  commit_id1了!!! 那是因为git cherry-pick是本地特性,本地要有这个commit才可以被git cherry-pick。但是他本地并没有这个commit id,所以出现了这个错

既然用了gerrit,那么就用gerrit提供的cherry-pick就好了,如下:

(1)登陆gerrit页面,找到A提交的commit_id1,点击右上角的‘download’,然后复制cherry-pick那条,如下:

(2)然后再本地执行刚才复制的命令,执行,如下:

如果跟B本地的文件有冲突,会显示error,然后执行git status 可以看到‘both modify’的字样,告诉你了冲突文件,修改冲突文件即可。

如果没有冲突,命令执行完,B本地执行git log 就可以看到A的commit_id1的提交了。

git cherry-pick 报错 fatal: bad object的更多相关文章

  1. git同步遇到报错“fatal: unable to access 'https://github.com/lizhong24/mysite2.git/': Peer reports incompatible or unsupported protocol version.”

    git同步遇到报错“fatal: unable to access 'https://github.com/lizhong24/mysite2.git/': Peer reports incompat ...

  2. git报错fatal: loose object ....(stored in .git/objects/....) is emtpy

    主要是非正常关机.把.git给破坏了 参考https://stackoverflow.com/questions/12571557/fixing-a-corrupt-loose-object-as-a ...

  3. git同步遇到报错

    git同步遇到报错 “fatal: unable to access ‘https://github.com/ruanwenwu/newp.git/‘: Peer reports incompatib ...

  4. 推送GitHub报错 fatal: Out of memory, malloc failed 解决办法

    现象: 推送GitHub时,出现如下报错 fatal: Out of memory, malloc failed (tried to allocate XXXXXX bytes)error: fail ...

  5. hexo d 报错‘fatal: could not read Username for 'https://github.com': No error’

    问题描述 今天早上,一如往常的往在github上创建的hexo博客上传文章,结果报错 'fatal: could not read Username for 'https://github.com': ...

  6. centos6.5 git clone http 报错

    自己搭建服务器环境为centos6.5,需要使用git clone 命令的时候报错 首先查看centos上安装的git版本,我的版本为1.7.10 报错后,查阅相关资料需将centos升级,操作如下 ...

  7. git提交代码报错 trailing whitespace的解决方法

    1. git提交代码报错 trailing whitespace 禁止执行pre-commit脚本 进入到项目目录中 chmod a-x .git/hooks/pre-commit 2.git提交代码 ...

  8. appium 提示报错“TypeError: 'unicode' object is not callable”的解决方式!

    这里提到的这个报错,是小错误且容易经常会犯,有时需要特别注意使用. 目的要求结果:根据某个元素的id值获取到对应id的text值,并且将获取的text值与本身存在的text值做比较,查看text值是否 ...

  9. 在使用 Git pull 时候报错 error: inflate

    在使用 Git pull 时候报错 error: inflate 具体的错误是 这样的 error: inflate: data stream error (unknown compression m ...

随机推荐

  1. Django之ORM版学员管理系统

    班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = models.CharF ...

  2. mysql第二次安装失败的解决方法

    1首先在控制面板中将名字与mysql有关的逐一的卸载. 2 然后找到mysql安装目录将mysql文件夹全部删掉,即使是空的文件夹也要删掉. 3打开C:\ProgramData,找到MySQL文件夹, ...

  3. tsm 带库 磁带

    磁带和存储池设置 新装入带库的磁带,需执行格式化命令方可使用,而存储池采用手工定义方式加入磁带,所以checkin状态设置为private,而不使用scratch磁带自动定义方式. label lib ...

  4. 记一次 mysql 启动没反应

    记一次 mysql 启动没反应 ,重启linux又可以启动 vim /var/log/mysqld.log 2018-02-04 13:22:49 28507 [ERROR] InnoDB: Cann ...

  5. Entity Framework DbSet<T>之Include方法与IQueryable<T>扩展方法Include的使用

    Entity Framework使用Code First方式时,实体之间已经配置好关系,根据实际情况某些情况下需要同时获取导航属性,比如获取商品的同时需要获取分类属性(导航属性),或者基于优化方面考虑 ...

  6. gitignore 不起作用的解决办法

    gitignore 不起作用的解决办法 - sloong - 博客园 https://www.cnblogs.com/sloong/p/5523244.html Administrator@PC-20 ...

  7. MySQL transaction

    MySQL transaction(数据库的事务) 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作. 要么完全执行,要么完全地不执行. ACID 事务 ...

  8. mysql缓存分析

  9. [administrative][archlinux][netctl][wpa_supplicant] 查看WIFI链接信息

    当使用 netctl + wpa_supplicant的时候,环境里同时存在好多个WIFI,而我同时有配置了他们的密钥信息在配置文件中. 那么我该如何查看,我当前链接到了哪个WIFI上? /home/ ...

  10. delphi inttohex 整型到十六进制

    inttohex from delphi help: Returns the hex representation of an integer. Unit SysUtils Category nume ...