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)

  • 相关阅读:
    架构之路(六):把框架拉出来
    读取mdb文件
    基类、子类之间的类型转换
    WPF Trigger
    WPF 打开txt文件
    C# 匿名方法
    自定义显隐式类型转换
    枚举获得Description扩展方法
    IFormattable和IFormatProvider
    WPF DataGrid下滑动态加载数据
  • 原文地址:https://www.cnblogs.com/zndxall/p/14087020.html
Copyright © 2011-2022 走看看