qiaol618的个人博客分享 http://blog.sciencenet.cn/u/qiaol618

博文

Git commit 瑕疵的无痕修复

已有 2787 次阅读 2015-4-2 10:26 |个人分类:编程|系统分类:科研笔记| 修复, commit, git, 无痕

有时候会发现commit有错误想补救,如果这个有问题的commit是最后一个,那么直接用

git commit  --amend --no-edit

就好了。其中--no-edit是指不修改commit的message。


如果想修补的commit不是最后一个,就需要用rebase来修复了。修复步骤如下:

1.得到版本历史和相应的hash code

git log

2. rebase到你想修改的那次commit的父节点

git rebase -i bcv765x

3.是一个命令会弹出一个vi编辑器,里边有相应的解释。我们此时要做的就是把你想修改的那个commit前边的‘pick’改成‘edit’,然后保存退出。

4.此时rebase会挂起,等待我们进行需要的编辑。现在就要做的修改完成,然后用 --amend模式commit.

5.继续rebase,吸收(pick)后续的commit。如果没有冲突的话,修复就此完成了。

git rebase --continue

注意,这么一来的话所有受影响的commit的hash code都会改变。所以,强烈建议再做任何修改之前都从master   branch出来一个新的分支,并且在 merge到 master之前一定要充分测试。在mater分支不建议进行rebase操作,宁愿多用一次commit来修复问题。



https://blog.sciencenet.cn/blog-824391-879215.html

上一篇:OS X在当前目录打开终端以及设置快捷键
下一篇:显著增加bash交互舒适度的.inputrc
收藏 IP: 74.192.3.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-27 15:22

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部