欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Git 合并多个已经提交的 commits

在实际开发过程中,我们可能会每开发一些代码就会把这些代码进行提交,以防止一些意外;但是随着提交的 commits 数越来越多,一方面维护起来不便,另一方面可能会造成版本控制的混乱,为了解决这个问题,我们可以把多个 commit 合并成一个。

比如下面这个 MR 一共提交了两次:

git squash
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:过往记忆大数据

为了方便管理,我们需要把这两个提交合并到一起。git 给我们提供了 rebase 命令来实现这个目的。操作步骤如下:

我们使用 git log 命令来查看最新的 git 日志:

git squash
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:过往记忆大数据

我们需要把 88b6aa 和 89d53f 两个合并起来,可以使用下面的命令来实现:

git rebase -i 029e3f

其中 -i 参数的意思就是我们需要合并 -i 参数指定之前的提交,因为这里我们是需要合并 88b6aa 和 89d53f,这两个是在 029e3f 之前。
执行上面的命令会进入下面的界面:

git squash
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:过往记忆大数据

可以看到,最上面的两行其实就是我们要合并的 commits,使用 # 开始的行是 git 自带的注释,主要是用来提示我们。在本文我们主要需要用到 picksquash 这两个命令就可以的,这两个命令的含义上面图片里面已经解释了。

我们现在是需要把第二行的提交(88b6aa)合并到第一行的提交(89d53f)里面,所以可以这么做:

pick 89d53f0cc1 Support Filter/Limit/TopN pushdown for JDBC Connectors
squash 88b6aae9b7 Fix code style.

然后输入 :wq 以保存并退出,这时候就会进入下面的界面:

git squash
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:过往记忆大数据

上图中非注释的两行其实就是我们之前两个 commits 的 comment 信息,现在这里我们需要为合并之后的 commit 写一个新的 commet(自己可以根据自己的意愿写),所以可以如下操作:

git squash
如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:过往记忆大数据

然后再一次输入 :wq 以保存并退出。退出之后,其实就已经完成了多个 commit 的合并。可以再一次执行 git log 查看:

commit 0ff665ec1d0beb4e59c9979cabd06b9a2d58aedc (HEAD -> jdbc_pushdown)
Author: iteblog <hadoop@iteblog.com>
Date:   Thu Aug 5 18:43:27 2021 +0800

    Support Filter/Limit/TopN pushdown for JDBC Connectors

commit 029e3fc6dbc9b8ceecc7bd6b881f376ee8f89135 (upstream/master, master)
Author: shenh062326 <shenh062326@126.com>
Date:   Fri Jul 23 10:35:33 2021 +0800

    Add queryId to Hive temporary table names

commit 3127c281f5359ef2144fbadc5e52dec98aeed4c8

然后我们就可以使用 git push origin jdbc_pushdown -f 命令把修改同步到远程分支。

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Git 合并多个已经提交的 commits】(https://www.iteblog.com/archives/9987.html)
喜欢 (3)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!