关闭

git 使用一条龙

标签: git format-patchtaggit amgit apply
262人阅读 评论(0) 收藏 举报
分类:

下面总结一下使用git的过程,那天要是忘记了过来看看就知晓了。很多东西时间稍微长一点不用就会忘记了,还是做点记录的好!!!


首先我需要对我的内核代码打一个补丁,所以我先生成一个补丁(如果你有现成的补丁直接用):

1、生成补丁

mkdir -p /tmp/patch
git format-patch commit-old..commit-new -o /tmp/patch</span>
参数解释: -o 参数指定生成补丁的输出路径


注意:两个commit哈希之间有两个英文的句号,之间没有空格;关于format-patch 子参数的更多使用help命令查看:

git format-patch --help

上面的命令执行成功之后会在输出指定的输出目录下生成相关patch文件如:

0001-xxxx-fixup-some-bugs-for-audit.patch

2、应用补丁

首先检查生成的补丁能否应用到当前项目代码中:

git apply --check /tmp/patch/0001-xxxx-xxx.patch
如果没有出现error,说明此patch可以应用到当前代码中。如果出现错误,视错误类型而定。

git am   /tmp/patch/0001-xxxx-xxx.patch
如果也ok的话,说明此patch已经完全应用成功,当然有时候会出现许多你不想看到的错误警告,所以你应该搞明白项目代码的来龙去脉,确保在合适的节点应用patch。

当你拿到或者生成了多个patch时需要批量应用patch:

git am  tmp/patch/*.patch
祝你好运!


可以查看应用周的log信息:

git log  //patch的commit、Author、Date、描述
git log  -p 
git log  -U
git log  --raw

接下来再看看git 仓库的状态:

git  status
这个命令这有许多子参数,使用--help来了解其用法


3、更新到远程仓库

git push origin master   //push到主分支
git push origin branchname:master  //push到某个分支


4、应用标记(视情况而定)

有时候我们提交完patch到某个commit时可能是项目的某个阶段,例如一个commit提交完之后我们出了新版本,需要在git仓库标记这个节点为某个版本发布的节点。

命令格式
git tag -a version -m "描述信息"  commit哈希值
命令:
git tag -a version-121  -m "update to 3.10.121 version"  fa2c81f49786f54
提交tag:

git add .
git commit -m "描述信息,自己发挥"
git push origin version-121  //要和上面的tag名称一致


补充:

如果是自己在代码中添加的补丁,应该如何应用到远程仓库的方法我就不在这里说了;






0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:76415次
    • 积分:1332
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:88篇
    • 译文:6篇
    • 评论:0条