因为现场代码在客户局域网内,不能连接到公司网络,所以一般更新的时候都是打补丁,

然后在客户现场应用补丁,但是最近在应用补丁的时候出现了如下问题:

...
fatal: sha1 information is lacking or useless (config.xml).
...

这里使用的 GitExtension 的图形化界面管理版本库,进行补丁的生成和应用,

GitExtension 默认使用 3way-merge 来应用补丁,生成和应用补丁的命令如下:

# 生成补丁
> git format-patch -s (commit_id)
# 应用补丁
> git am --3way --signoff 0001.patch

解决办法:

总的来说就是强制应用补丁,手动解决文件问题,然后在继续应用补丁即可

  • 执行 git am --3way --signoff --reject 0001.path 命令应用补丁,

    并将补丁中不可应用的部分保存在 *.rej 文件中,例如:以上面的报错信息来说,

    就会多出来一个 config.xml.rej 文件来标识不可应用的部分

  • 根据 *.rej 文件修改没有应用完全的文件,我在处理的时候就比较生猛,

    直接删除 *.rej 文件,然后将修改后的文件覆盖

  • 然后将需要提交的文件添加到缓存区 git add ... ,因为应用补丁的过程基本就是修改文件,

    添加文件到缓存区,提交修改,由于修改文件的时候产生过了错误,

    所以应用补丁过程就停在了修改文件环节,再继续执行时我们就需要将需要提交的文件添加到缓存区

  • 最后执行 git am --continue 来继续执行补丁的应用即可

以上,既是 sha1 information is lacking or useless 的解决办法,

后经同事指导,还有更加生猛的办法... ...直接将版本库 .git 拷贝过去覆盖... ...

参考链接:

http://stackoverflow.com/questions/25846189/git-am-error-patch-does-not-apply

Git 应用补丁报错 “sha1 information is lacking or useless”的更多相关文章

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

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

  2. git同步遇到报错

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

  3. git https 请求报错 504

    git https 请求报错 504 原因可能是因为设置了代理,ubuntu/deepin 系统可以检查 /etc/profile ~/.bashrc 内有没有设置 https 的代理. 有的话,去掉 ...

  4. git切换分支报错:error: pathspec 'origin/XXX' did not match any file(s) known to git

    项目上有一个分支test,使用git branch -a看不到该远程分支,直接使用命令git checkout test报错如下: error: pathspec 'origin/test' did ...

  5. 给sql server2005打补丁报错:无法安装Windows Installer MSP文件

    给sql server2005打补丁报错:无法安装Windows Installer MSP文件 在我们安装完SQL2005数据库后,需要安装SP4补丁时,会出错:无法安装Windows Instal ...

  6. 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 ...

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

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

  8. Git提交代码报错Git push error:src refspec XXX matches more than one解决方案

    Git提交代码push时,报错这个 error: src refspec master matches more than one. error: failed to push some refs t ...

  9. git statsh命令报错解决

    git stash命令主要用于当在一个分支的开发工作未完成,却又要切换到另外一个分支进行开发的时候,除了commit原分支的代码改动的方法外,提供暂存代码的方式. git stash命令参考这篇:ht ...

随机推荐

  1. ruby 条件判断&循环控制

    参考:https://www.jb51.net/article/66709.htm

  2. vim 智能提示插件 YouCompleteMe安装

    按照网上的教程安装该软件,没有一篇是成功的(也有可能是没找对).自己从网上东拼西凑的,终于让自己的vim智能识别了. 1. 升级 vim: (ubuntu) sudo add-apt-reposito ...

  3. spring作用

    在SSH框假中spring充当了管理容器的角色.我们都知道hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来 ...

  4. 成都Uber优步司机奖励政策(2月16日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 2 引用 深copy 浅copy

    1. is == 总结 is 是比较两个引用是否指向了同一个对象(引用比较). == 是比较两个对象是否相等. In [1]: a = [11,22,33] In [2]: b = [11,22,33 ...

  6. Android:Gradle报错——No resource found that matches the given name (at 'dialogCornerRadius' with value '?android:attr/dialogCornerRadius')

    今天在使用科大讯飞语音识别SDK进行语音识别功能实现时,莫名的引入了这个错误.不得不吐槽Android Studio再引入别的包时太容易出现冲突,然后导致无法找到R文件,项目无法执行. 1. 具体报错 ...

  7. EF Core ThenInclude 2.0自动完成提示有误,坑了一下

    只要代码正确,可以编译运行的... https://github.com/dotnet/roslyn/issues/8237

  8. nio之netty3的应用

    1.netty3是nio的封装版本.在使用上面比nio的直接使用更好.nio简单使用都是单线程的方式(比如:一个服务员服务很多客户),但是netty3的方式不一样的是,引入线程池的方式来实现服务的通信 ...

  9. php安全性问题

    目录 常见攻击类型 1.sql注入: 2.xss攻击 3.csrf攻击: php安全三板斧:过滤输入.验证数据,以及转义输出. 1.数据过滤: 2.验证数据: 3.转义输出: laravel 中如何避 ...

  10. 基于Kafka的服务端用户行为日志采集

    本文来自网易云社区 作者:李勇 背景 随着互联网的不断发展,用户所产生的行为数据被越来越多的网站重视,那么什么是用户行为呢?所谓的用户行为主要由五种元素组成:时间.地点.人物.行为.行为对应的内容.为 ...