博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git提交过程中修改某次错误提交,或是修改bug的方法
阅读量:4125 次
发布时间:2019-05-25

本文共 1977 字,大约阅读时间需要 6 分钟。

应用场景

Git提交过程中不一定每次都是没有问题的,有可能在之前的提交中要修改某次错误提交或是修改bug的,比如:

branch_base  A->B->CC->D->E->F

其中如果想将“CC”的提交修改为 “C”而且对“CC”的修改对后面的提交都没有影响,这种情况下就可以使用该方法。

方案思路

branch_base   A->B->CC->D->E->Fbranch_temp   A->B->CC->D->E->F

第1步:将“branch_base”分支复制一个临时保存分支 “branch_temp”,用来保存当前版本信息。

命令:

git checkout -b branch_temp

commit log:

1cbdd1f HEAD@{9}: commit: F4d65a3e HEAD@{10}: commit: E76fcc45 HEAD@{11}: commit: D474c2eb HEAD@{12}: commit: CC42bb6ff HEAD@{13}: commit: Bab22fab HEAD@{14}: commit: A

第2步:将“branch_base”分支版本回退到B的位置,并与远程分支同步

branch_base   A->B

命令:

查看commit日志git reflog

选择回退到B位置 42bb6ff

git reset --hard 42bb6ff

与远程库同步

--force 强制提交参数,要确认对后面无影响在执行git push origin HEAD --force

远程库里面回退到已经回退到B

第3步:本地修改,生成新的C

b1 A->B->C

命令:

git add .git commit -m 'C'git push origin branch_temp

第4步:branch_temp  A->B->CC->D->E->Fcherry-pick D,E,F到branch_base上面branch_base   A->B->C

cherry-pick 批量commit 相关命令:

Git从1.7.2版本开始支持批量cherry-pick,就是一次可以cherry-pick一个区间的commit。

git cherry-pick 
..
或git cherry-pick
^..

前者表示把到之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;

后者表示把到之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。
其中,到只需要commit-id的前6位即可,并且在时间上必须早于

执行命令:

git checkout branch_basegit cherry-pick 76fcc45^..1cbdd1f

显示:

查看本地log

git logcommit f146763a8f8b53bb4e68f60a83291c6eb278e59fAuthor: xxx 
Date: Tue Dec 26 13:49:37 2017 +0800 Fcommit bf800f94227604dc463efa0b65c391a0daa16dc5Author: xxx
Date: Tue Dec 26 13:47:55 2017 +0800 Ecommit 1aa9146b4d1281ab087f8bacf4f94e1d0a8ee8a8Author: xxx
Date: Tue Dec 26 13:47:23 2017 +0800 Dcommit 59bb269511030fb4288f38c4f3a156c9a36084adAuthor: xxx
Date: Tue Dec 26 14:25:55 2017 +0800 Ccommit 42bb6ff3fcaddcac8863e2776bc4f48b8416fda5Author: xxx
Date: Tue Dec 26 13:46:11 2017 +0800 Bcommit ab22fab784fca451f796fec4fab4f3687b7d5536Author: xxx
Date: Tue Dec 26 13:45:44 2017 +0800 A

后面的commit已经过来了

第5步:

提交到远程分支即可

转载地址:http://cvlpi.baihongyu.com/

你可能感兴趣的文章
DoesNotExist异常导入路径
查看>>
JS中如何快速将字符串的“true"和"false"转换成Bool类型
查看>>
微信小程序封装wx.require
查看>>
rest_framework中,序列化显示choices字段的value方法
查看>>
xadmin中根据当前用户自动填写默认值
查看>>
js数组与字符串互相转换
查看>>
pandas DataFrame 转换日期比较时报 Can only use .dt accessor with datetimelike values错误
查看>>
Pandas DataFrame求差集
查看>>
rest_framework,发起retrieve请求时参数带小数点报404错误
查看>>
Vue移动端better-scroll组件中的@click事件失效
查看>>
pandas之DataFrame更改数据的列位置
查看>>
DataFrame索引加1
查看>>
Django自定义用户表时Admin后台密码密文的解决办法
查看>>
Vue页面刷新后store数据丢失
查看>>
无法启动uwsgi,显示No such file or directory [core/utils.c line 3654]
查看>>
nginx接受请求报错failed(13:Permission denied)
查看>>
stylus使用伪类和伪元素的方法
查看>>
Centos8安装mysql8.0遇到No match for argument: mysql-community-server错误
查看>>
Centos8远程连接mysql报You are not allowed to create a user with GRANT错误
查看>>
Centos8 重置mysql8的root密码
查看>>