当前位置:   article > 正文

git rebase 命令_git rebase -i commit

git rebase -i commit

git rebase 用来合并提交 commit 的提交历史。这个命令应该在合并到master分支之前触发,保证 master 分支上没有那么杂乱的提交明细。

适用场景是:在需求开发过程中,我们有多次 commit 提交操作,在合并到 master 之前,我们可以将这些 commit 操作合并成一个 commit 操作,这样 master 分支就会显得比较干净。

git rebase -i commitID
  • 1

我对这个命令字面的理解是:将 commitID 作为 base 重新提交一次 commit 操作。实际工作中,使用这个命令确实也不多。但身边曾经有一个同事确实经常使用这个命令。

特别注意的点:

  1. git rebase -i 这里的一定要是需要合并 commit 中最旧 commit 的父 commit ID。

命令图解

rebase 变基,名字起的就有些困惑,我们通过下面的图解来理解变基的要实现的目的:
在这里插入图片描述
这个图示对于完全不熟悉变基操作的人而言,差点意思。但表达的意思确实已经足够了,含义就是将 C4 变基到 master 分支上,搞清楚谁变基谁非常重要。

在这里插入图片描述
这里是 sourcetree 解释变基所用的图式, 变基允许我们将feature 分支中的修改,重新选择一个变更的位置。在变基过程中,还允许将 feature 分支中的多次修改提交合并成单次。

最好的解释,还应该归属于 goland git 工具,可视化的变基功能,做的要比 sourcetree 好。而且,动手使用了一下,也觉得 goland git 工具确实不错。

我们为什么要使用 rebase,肯定是要因为 rebase 和 merge 存在区别,而我们恰恰想使用这些区别。下图就是默认的变基行为,之前的变更(分支1-2-3)是基于 D 做的变更,在 rebase 之后,变基成为是基于 F 的做的变更。在 log 历史上,还是存在 3 次提交记录(1、2、3)。

在这里插入图片描述

变基的目的

我个人使用变基,主要是想清理一下 git log 的历史提交记录。在开发功能的过程中,需要经常 commit 代码,而不是所有功能都完善了之后整体提交一次 commit。如果每次提交都是一个有意义的变更节点,那也不需要 rebase 操作,关键有些提交非常没意义,可能是因为要做任务切换,或者记录一行调试日志,就提交了一次。删除一行调试日志,就又提交了一次,整个分支的提交历史非常多,看起来很没有技术素养。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/395770
推荐阅读
相关标签
  

闽ICP备14008679号