我是靠谱客的博主 聪明大侠,最近开发中收集的这篇文章主要介绍Git提交过程中修改某次错误提交,或是修改bug的方法应用场景方案思路,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

应用场景

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

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

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

方案思路

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

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

命令:

git checkout -b branch_temp

commit log:

1cbdd1f HEAD@{9}: commit: F
4d65a3e HEAD@{10}: commit: E
76fcc45 HEAD@{11}: commit: D
474c2eb HEAD@{12}: commit: CC
42bb6ff HEAD@{13}: commit: B
ab22fab 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->F
cherry-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 <start-commit-id>..<end-commit-id>
或
git cherry-pick <start-commit-id>^..<end-commit-id>

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

执行命令:

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

显示:

查看本地log

git log
commit f146763a8f8b53bb4e68f60a83291c6eb278e59f
Author: xxx <xxx@126.com>
Date:
Tue Dec 26 13:49:37 2017 +0800
F
commit bf800f94227604dc463efa0b65c391a0daa16dc5
Author: xxx <xxx@126.com>
Date:
Tue Dec 26 13:47:55 2017 +0800
E
commit 1aa9146b4d1281ab087f8bacf4f94e1d0a8ee8a8
Author: xxx <xxx@126.com>
Date:
Tue Dec 26 13:47:23 2017 +0800
D
commit 59bb269511030fb4288f38c4f3a156c9a36084ad
Author: xxx <xxx@126.com>
Date:
Tue Dec 26 14:25:55 2017 +0800
C
commit 42bb6ff3fcaddcac8863e2776bc4f48b8416fda5
Author: xxx <xxx@126.com>
Date:
Tue Dec 26 13:46:11 2017 +0800
B
commit ab22fab784fca451f796fec4fab4f3687b7d5536
Author: xxx <xxx@126.com>
Date:
Tue Dec 26 13:45:44 2017 +0800
A

后面的commit已经过来了

第5步:
提交到远程分支即可

最后

以上就是聪明大侠为你收集整理的Git提交过程中修改某次错误提交,或是修改bug的方法应用场景方案思路的全部内容,希望文章能够帮你解决Git提交过程中修改某次错误提交,或是修改bug的方法应用场景方案思路所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部