git rebase 的妙用 - Go语言中文社区

git rebase 的妙用


首先来看应用场景:我们要修改之前某一个特定的commit的时候,就需要用到这个命令。

假如之前的某个提交的上一笔commit id是:928fc8a3686bf5fcf4527873e075703a9998c127

git log #查看commit id 找到上一笔commit id
git rebase 928fc8a3686bf5fcf4527873e075703a9998c127 --interactive或者-i
//注意,一定要上一笔,为什么呢?实际上rebase翻译过来就是变基,简而言之,就是变更为基于哪一笔提交上的提交, 这里指的“哪一笔”就是需要修改的提交的上一笔了。

然后在vi中修改pick为edit,wq保存退出,接着进行内容修改,git addgit commit --amend
最后git rebase --continue即可再次回到最新的头部

//git rebase --continue 作为整个操作的结束动作,所以一定要执行。

 

接下来看下一些具体场景:

1.有的时候,我们从远程git同步代码时候会有以下信息:

 上传新提交的时候,也会因为这笔记录的格式问题报错,

 

此时用git rebase 92320630cbf41f656361271110c6fc1298b1ec19 -i,然后不做任何修改,wq保存退出,这笔merge信息就没有了。我的理解是跟不加参数-i是一样的。

2.当执行git rebase 92320630cbf41f656361271110c6fc1298b1ec19 -i 后有多笔提交的时候,

如:

pick xxxxxx

pick xxxxxx

pick xxxxxx

可以删除不相关的几笔提交,只留下要修改的那笔pick xxxxxx, 这样的做的好处,就是git commit 之后,进行repo upload 的时候,不会出现其他几笔提交也重新上传一次。我的理解是如果多个pick, 那么这几笔都重新rebase到了需要的修改的上一笔提交上。

如果只剩下需要修改的那一笔,那么只是对需要修改的那一笔进行rebase。

3. 如果中途出错,可以使用git rebase --skip 来重置

 

转载于:https://www.cnblogs.com/rainey-forrest/p/11232543.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_30522095/article/details/99995822
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-28 20:12:25
  • 阅读 ( 1397 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢