zoukankan      html  css  js  c++  java
  • git rebase -i HEAD~3合并多个提交为一个提交

    场景:新功能在本地的dev_feat分支开发过程中,提交了多次,生成了多个commit id,开发测试完成后将新功能合并到dev分支上,但是不想要这些提交记录,那么可以将多个commitid合并成一个,再merge或者push到dev分支上。

    比如git log 看到以下三个提交:

    前面说过 commit 是为了防止意外丢失代码,但是在推到远端之前,最好把一次开发的 commit 合并成一个,避免污染远端的 git commit message

    前面说过 commit 是为了防止意外丢失代码,但是在推到远端之前,最好把一次开发的 commit 合并成一个,避免污染远端的 git commit message

    因为这个例子中有3个 commit,所以执行 git rebase -i HEAD~3

    然后就会看到一个 vim 界面 (不熟悉 vim 基础操作的读者请自行查阅搜索)

     记住不要动最上面的那行,把下面几行开头的 pick 换成 s , 然后保存

    这时会显示另一个 vim 界面

     

     删除所有内容( #开头的可以忽略),然后写一句简短、准确的句子作为这次开发的 commit message,如

    然后保存

    如果成功了就能看见这么一些文字

    最后使用 git logl 确认所有这次开发中的 commit message 都被压缩成了一个

    (这边只介绍了 git rebase的最简单直接的用法,有兴趣的读者可以去阅读官方文档,了解更详细、高级的用法,如第一次vim界面里使用 f 替代 s 有时候更方便)

    参考:

    血泪教训之请不要再轻视Git —— 我在工作中是如何使用 Git 的 - 知乎 (zhihu.com)

  • 相关阅读:
    UML
    Jenkins(Jenkins的安装配置)
    SpringCloud:Config配置中心
    IDEA将项目上传到GitHub
    JS—高阶函数
    项目中git操作
    互联网概述
    ESLint的extends
    vue3 + TS + eslint 实现代码格式化以及代码规范提示
    vue3基础使用
  • 原文地址:https://www.cnblogs.com/zndxall/p/14087020.html
Copyright © 2011-2022 走看看