通过history 可以查看打命令记录

比如我要再3f3f5a2721301c47099b21691ae865b6cacbea97 这个提交+之前7次提交=8次提交,那就生成8个patch

git format-patch   3f3f5a2721301c47099b21691ae865b6cacbea97 -8 

-8表示几次提交记录

分别是1.patch 2.patch.......一直到8.patch  这个文件名字根据自动生成名字定 我只是举个例子

然后到当前项目目录下 输入

git am 目录/8.patch

 

还有一种安装patch的方式:

patch <xxxx.path -p1

patch <xxxx.path -p1 --dry-run 

--dry-run代表尝试patch软件,并不真正修改软件。 可加可不加

此时只是patch 的文件修改生效,还缺少commit 信息和change id

所以无法push到服务器

 

然后git log 

git commit --amend

 

此时打开一个文件,自动把cmmit信息和change id 添加到文件中.

ctrl+X退出编辑文件

在看log就能看到change id

然后就可以push到服务器了

 

 

 

 

git 其他命令整理

git pull 从服务器拉取代码

前提是要先git status 看文件是不是都是提交状态

如果没提交 先 commit

看log日志 git log --pretty=oneline --graph --decorate --all

清空本地提交缓存,与远端同步

git  reset --hard origin/master

 

 

解决打patch 失败的问题:

首先 git status看下状态

然后 把orig后缀的文件删了

rm $(find . -name "*.orig")

 然后通过rej  手工合并代码

合完之后 rm $(find . -name "*.rej")

删掉rej文件

git add .

git status 

git diff --cached > ../t.patch

比如有些文件不需要提交  则reset

git reset 文件名

然后 git commit  -m   "提交日志"

git push origin HEAD:xxx/xxx/xxx