一、参考资料:
Git初步安装与使用: http://blog.jobbole.com/78960/
Git与Repo入门: http://www.cnblogs.com/angeldevil/p/3238470.html
二、常用指令汇总:
ssh-keygen -t rsa –C “446065469@qq.com” //生成秘钥,需要id_rsa.pub内容添加到git服务器
git config -global user.name "sheldon_li" //配置当前用户名
git config -global user.email "446065469@qq.com" //配置当前用户邮箱
(1) git format-patch
(2) git am
git am 0001-limit-log-function.patch # 将名字为0001-limit-log-function.patch的patch打上
git am --signoff 0001-limit-log-function.patch # 添加-s或者--signoff,还可以把自己的名字添加为signed off by 信息注明打patch的人是谁
git am ~/patch-set/*.patch # 将路径~/patch-set/*.patch 按照先后顺序打上
git am --abort # 当git am失败时,用以将已经在am过程中打上的patch废弃掉(比如有三个patch,打到第三个patch时有冲突,那么这条命令会把打上的前两个patch丢弃掉,返回没有打patch的状态)
git am --resolved # 当git am失败,解决完冲突后,这条命令会接着打patch
(3) git apply
git apply --stat 0001-limit-log-function.patch # 查看patch的情况
git apply --check 0001-limit-log-function.patch # 检查patch是否能够打上,如果没有任何输出,则说明无冲突
(注:git apply是另外一种打patch的命令,其与git am的区别是,git apply并不会将commit message等打上去,而git am会直接将patch的所有信息打上去,author是生成patch的人)
解决patch冲突方法 :
方案一(稳):
(1) 根据git am失败的信息,找到发生冲突的具体patch文件,然后用命令git apply --reject <patch_name>,强行打这个patch,发生冲突的部分会保存为.rej文件(例如发生冲突的文件是a.txt,则发生conflict的部分会保存为a.txt.rej)
(2) 根据.rej文件,通过编辑该patch文件的方式解决冲突
(3) 废弃上一条am命令已经打了的patch:git am --abort
(4) 重新打patch:git am ~/patch-set/*.patch
方案二(快):
(1) 根据git am失败的信息,找到发生冲突的具体patch文件,然后用命令git apply --reject <patch_name>,强行打这个patch,发生冲突的部分会保存为.rej文件(例如发生冲突的文件是a.txt,则发生conflict的部分会保存为a.txt.rej)
(2) 根据.rej文件,通过编辑发生冲突的code文件的方式解决冲突
(3) 将该patch涉及到的所有文件(不仅仅是发生冲突的文件)通过命令git add <file_name>添加到工作区中
(4) 告诉git冲突已经解决,继续打patch: git am --resolved (git am --resolved 和 git am --continue是一样的)
来源:https://www.cnblogs.com/blogs-of-lxl/p/10613267.html