git am patch冲突解决步骤

摘要:
因为我们使用的补丁已经过时,所以这个步骤肯定会报告错误和中断。我们可以执行find-name*。在执行gitam命令的目录中使用rej命令查看所有冲突的源文件位置。要修改提交信息,请执行gitcommit--modify命令。

在踩过几次坑之后,大多数工程师都会学会使用patch的形式来保存各个模块/功能的代码改动,这样可以很方便地为相应模块添加或者去除相关功能的代码。但是伴随着主线代码的不断更新,我们在早期保存出来的patch中有部分内容可能已经不能再直接打入现在的代码里了。这种情况下可以使用下面的方法解决冲突:

1、执行命令 git am xxxx.patch 尝试直接打入补丁。因为我们使用的 patch 已经过时了,所以这一步肯定会报错并中断(注意,虽然命令停止执行了,但我们依然处于git am命令的运行环境中,可以通过git status命令查看到当前的状态)。

2、执行命令 git apply --reject xxxx.patch 自动合入 patch 中不冲突的代码改动,同时保留冲突的部分。这些存在冲突的改动内容会被单独存储到目标源文件的相应目录下,以后缀为 .rej 的文件进行保存。比如对 ./test/someDeviceDriver.c 文件中的某些行合入代码改动失败,则会将这些发生冲突的行数及内容都保存在 ./test/someDeviceDriver.c.rej 文件中。我们可以在执行 git am 命令的目录下执行 find -name *.rej 命令以查看所有存在冲突的源文件位置。

3、依据 步骤2 中生成的 *.rej 文件内容逐个手动解决冲突,然后删除这些 *.rej 文件。完成这一步骤的操作后,我们就可以继续执行 git am 的过程了。

4、执行命令 git status 查看当前改动过的以及新增的文件,确保没有多添加或少添加文件。

5、执行命令 git add . 将所有改动都添加到暂存区(注意,关键字add后有一个小数点 . 作为参数,表示当前路径)。

6、执行命令 git am --resolved 继续 步骤1 中被中断的 patch 合入操作。合入完成后,会有提示信息输出。

7、执行命令 git log 确认合入状态。


至此,带有冲突代码的 patch 合入就操作完成了。如果要修改 commit 信息,执行 git commit --amend 命令即可。

参考:https://blog.csdn.net/chaihuasong/article/details/50517519

免责声明:文章转载自《git am patch冲突解决步骤》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win10的资源管理器,边框不见了GameFramework 学习下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Git 本地保存账号密码的删除或修改

转自:https://blog.csdn.net/lwqldsyzx/article/details/61228299 Git 本地拉取代码时需要输入用户名和密码时,会自动将用户名密码信息保存起来。需要清除时操作如下: 1 win10 系统下进入控制面板 》 用户帐户 》 管理你的凭据选择 [Windows 凭据] git 保存的用户信息在普通凭据列表里...

idea右键没有git选项

网上很多说法,不过可能版本更新,新版本好像不管用,废话不多说,上图 点击下VCS——》Git——》commit File然后好像可以选下本地仓库的路径,好像是这样,刚刚操作完就完了,反正就这样的 然后顺便说下,关联了git后 绿色,已经加入控制暂未提交红色,未加入版本控制蓝色,加入,已提交,有改动(提交后就变回白色)白色,加入,已提交,无改动灰色:版本控...

git config配置

在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类: 1、仓库级别 local 【优先级最高】 2、用户级别 global【优先级次之】 3、系统级别 system【优先级最低】 通常: git 仓库级别对应的配置文件是当前仓库下的.git/config 【在当前目录下.git目录默认是隐藏的,所以在文件管...

Docker 搭建开源 CMDB平台 之 “OpsManage”

              说明:  我一次build 完 所以images 包 有1G多   可分层build   bash 环境一层   应用程序及启动脚本(shell.sh) 一层     步骤:           1     基础 Images 镜像  sairamnusetty/centos6.8-python2.7.13          ...

git使用命令

新建分支 git branch 分支名 切换分支 git checkout 分支名 进行项目上传 git add . git commit -m "提交的信息" git remote add origin 远程仓库地址 git push -u origin 分支名 git add 参数的区别 git add -u:将文件的修改、文件的删除,添加到暂存...

Git——分支详解

  在Git中,假设写了第一个版本的代码VI,然后下面又写了第二个版本的代码V2,那么V2保留的内容是相对于V1新加的内容,他们之间的关系是V2指向V1。这一条线叫做主干:master    此时在V2的基础上,想新加一个功能G1,那么可以在V2的基础上添加一个分支,这个分支G1是创建了一个新环境来写的。再比如说此时想添加另外一个新功能G2,我们同样创...