git patch 使用
使用git的时候,需要删除几个id,会对到之前的代码,但又想保留现在的代码,以便后面从新合并,所以就将现在的代码打包成patch,留到下次合并。
参考链接
http://www.jianshu.com/p/e5d801b936b6
http://www.cnblogs.com/y041039/articles/2411600.html
生成patch
可以用git diff命令或者git format-patch生成patch。
git format-patch
git format-patch <id>:从id这个版本到现在的patch。
如果有多个id的log信息,那么就会生成多个patch文件。
git patch命令生成的patch是根据时间节点来的,而且在打patch的时候,一个patch对应一个时间节点。
使用git log查看id信息。
git format-patch HEAD^ # 最近的1次commit的patch
git format-patch HEAD^^ # 最近的2次commit的patch
git format-patch HEAD^^^ # 最近的3次commit的patch
git format-patch HEAD^^^^ # 最近的4次commit的patch
git diff
git diff命令不管有几个时间节点,都只会生成一个patch文件。
git diff <id1> <id2> > file.patch
旧的id1在前。
使用patch
先检查patch文件:git apply --stat newpatch.patch
检查能否应用成功:git apply --check newpatch.patch
使用git am会有patch里面的log信息,包括comment等。
打补丁
git am --signoff < newpatch.patch 或者 git am --s < newpatch.patch
git apply newpatch.patch
使用git apply 命令打入patch就不会记录commit的记录,而使用git am的记录就会有记录。
patch失败
先检查patch文件:git apply --stat newpatch.patch
检查能否应用成功:git apply --check newpatch.patch
如果不成功,我的解决方法:
git am newpatch.patch
运行这条命令之后,是不会打patch,因为前面的git apply --check已经检查出不成功,git am也会进行检查,不成功就不会打patch。但是会进入git am的操作。
git apply --reject newpatch.patch 这条命令会将可以打的patch打上,然后不能打patch的文件在对应的目录生成.rej文件。对比rej文件,手动更改patch。
git status查看当前状态。
当前不在任何分支上。
您正处于 am 操作过程中。
(解决冲突,然后运行 "git am --continue")
(使用 "git am --skip" 跳过此补丁)
(使用 "git am --abort" 恢复原有分支)
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: CORE/MAC/src/pe/lim/limSendManagementFrames.c
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
CORE/MAC/src/pe/lim/limSendManagementFrames.c.rej
然后git add将更改的文件加入stage,并将.rej文件删除。
最后使用
git am --continue.这样patch就成功打入了,而且也会记录里面的commit信息。
Tony Liu
2017-12-20
git patch 使用的更多相关文章
- I.MX6 git patch
/********************************************************************** * I.MX6 git patch * 说明: * 之前 ...
- linux git patch 和patch以及git diff 命令
1.git log 查看commit id,修改前为id1,修改后id2 2.根据id1到id2有几次提交来生成几个patch,否则的话会根据所有节点生成很多patch 比如: commit id2 ...
- git patch生成方法
先把改动commit掉,然后生产改动patch给提交代码的同事,详细操作过程例如以下: 改动代码的同事: git format-patch al821_xxx origin/al821_xxx 会生成 ...
- git patch
http://www.cnblogs.com/y041039/articles/2411600.html
- git apply、git am打补丁.diff 和 .patch【转】
本文转载自:https://www.jianshu.com/p/e5d801b936b6 前提: 生成patch: git format-patch -M master 生成指定patch,0163b ...
- git命令详解(转)
Git使用 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有 ...
- git备忘录
1.git: patch does not apply git apply --ignore-space-change --ignore-whitespace mychanges.patch 2.Ge ...
- Git 操作常用命令
Git使用 1. git pull 更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支 2. git push ...
- 【转】git命令
Git使用 1. git pull 更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支 2. git push ...
随机推荐
- FFmpeg编译:Linux下使用NDK编译FFmpeg
环境: Ubuntu 1.下载并解压FFmpeg3.4.zip(略) 2.将编译脚本放入到FFmpeg解压后的目录. 3.执行编译脚本: ./linux_build_android.sh linux_ ...
- ie6遮罩层兼容 100%高度的实现
.black { position:absolute;width:100%;height:100%;opacity:0.5;filter:alpha(opacity=50);background:#0 ...
- 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法
本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...
- vue.js中请求数据v-for循环使用数据
1.效果图 2.cart.json { "message":"", "status":"1", "result ...
- [转] lua 获取本地当月天数
亲测,无误. 原文传送门:lua 获取本地当月天数 开发中有用到,记录一下. local year,month = os.date("%Y", os.time()), os.dat ...
- vue监听浏览器窗口的变化,随着窗口变化调整里面table的宽高
1.在data中设置: tableHeight:"500", screenHeight:window.innerHeight, 2.在mounted中设置: mounted() { ...
- c#去除字符串中的空格,回车,换行符,制表符
string l_strResult = str.Replace("\n", "").Replace(" ","").R ...
- 练习1 Just Java
任务:做这样一个界面,选择数量,自动计算价格.超级简单.. <?xml version="1.0" encoding="utf-8"?> <a ...
- poj1077(康托展开+bfs+记忆路径)
题意:就是说,给出一个三行三列的数组,其中元素为1--8和x,例如: 1 2 3 现在,需要你把它变成:1 2 3 要的最少步数的移动方案.可以右移r,左移l,上移u,下移dx 4 6 4 5 67 ...
- SQL学习(持续更新)
1.having筛选分组 正如where子名限制了select显示的行数,having限制了group by显示的分组数.where查询条件在分组产生前就被计算,而having搜索条件在分组产生之后才 ...