git笔记之默认使用vim以及修改倒数第二次的commit提交信息到远程

git笔记之默认使用vim以及修改倒数第二次的commit提交信息到远程

git笔记之默认使用vim以及修改倒数第二次的commit提交信息到远程

在这里插入图片描述

code review!

文章目录

一.默认使用vim方法之一:使用 git config 命令

这是最直接且专门针对 Git 的设置方法。打开的终端(Terminal)或 Git Bash,运行以下命令:

git config --global core.editor "vim"

解释:

  • --global:表示这个设置对当前用户的所有 Git 仓库生效。如果只想对当前仓库生效,可以去掉这个参数(或者换成 --local)。
  • core.editor:这是 Git 中控制默认编辑器的配置项。
  • "vim":指定使用 vim。如果想使用 nvim (Neovim),也可以将其改为 "nvim"

二.修改倒数第二次的commit提交信息到远程

在操作之前,请务必注意:修改历史提交(Rebase)会改变提交的哈希值(Commit ID)。

如果这一分支是多人协作的分支(其他人已经拉取了的旧代码),强制推送到远程可能会导致队友的代码冲突或混乱。

  • 如果是自己的私有分支: 可以放心操作。
  • 如果是公共分支: 请先与队友沟通,或者考虑只追加一个新的修正提交而不是修改历史。

操作步骤

第一步:启动交互式变基 (Interactive Rebase)

我们需要对最近的 2 次提交进行变基操作。在终端中输入:

git rebase -i HEAD~2 
  • -i:表示交互模式(interactive)。
  • HEAD~2:表示从当前位置往回数 2 个提交。
第二步:选择要修改的提交

执行上述命令后,Git 会自动打开默认的编辑器(比如 Vim)。会看到类似下面的内容:

pick 1a2b3c4 倒数第二次的提交信息 (这是想改的) pick 5d6e7f8 最后一次的提交信息 ... 

需要做的是:

  1. 找到倒数第二次提交的那一行(通常是第一行,因为顺序是按时间正序排列的,旧的在上)。
  2. 将该行开头的单词 pick 修改为 reword (或者简写为 r)。
    • reword 的意思是:保留代码修改,但允许编辑提交信息。
  3. 不要修改第二行(最后一次提交),保持 pick 不变。

修改后的样子:

reword 1a2b3c4 倒数第二次的提交信息 pick 5d6e7f8 最后一次的提交信息 

保存并退出编辑器(在 Vim 中是 :wq)。

第三步:修改提交信息

退出后,Git 会立即再次打开编辑器。这次它是专门让编辑刚才标记为 reword 的那个提交的信息。

  1. 修改编辑器中的文字,改成想要的新提交信息。
  2. 保存并退出(:wq)。

Git 会自动完成剩余的变基过程。如果成功,会看到 Successfully rebased and updated refs/heads/... 的提示。

第四步:强制推送到远程

因为修改了历史提交,本地的提交历史和远程仓库已经不一致了(分叉了)。需要使用强制推送来覆盖远程仓库。

git push --force # 或者更安全的写法(推荐):git push --force-with-lease 
  • --force-with-lease 比单纯的 --force 更安全。它会检查远程分支在拉取之后是否有其他人推送过代码。如果有,它会阻止覆盖,防止意外删掉队友的代码。

总结流程图

  1. git rebase -i HEAD~2
  2. 将目标提交前的 pick 改为 reword -> 保存退出。
  3. 在弹出的新窗口中修改文字 -> 保存退出。
  4. git push --force-with-lease

常见问题:如果在 Rebase 过程中遇到冲突怎么办?

虽然只是修改提交信息通常不会产生代码冲突,但如果真的发生了:

  1. Git 会暂停 Rebase 并提示冲突文件。
  2. 需要手动解决冲突文件。
  3. 解决后执行 git add <file>
  4. 执行 git rebase --continue 继续流程。
    • 注意: 此时不需要执行 git commit

Read more

基于YOLOv10n-SOEP-PST的跟随式助老机器人目标检测与识别系统详解

1. 基于YOLOv10n-SOEP-PST的跟随式助老机器人目标检测与识别系统详解 【CC 4.0 BY-SA版权 版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明。 文章标签: 深度学习 同时被 2 个专栏收录 这个损失函数由五个部分组成:边界框坐标损失(前两行)、置信度损失(第三、四行)和分类损失(最后一行)。 λ c o o r d \lambda_{coord} λcoord 和 λ n o o b j \lambda_{noobj} λnoobj 是权重参数,用于平衡不同损失的重要性。 I i j o b j

By Ne0inhk
突破机器人通讯架构瓶颈,CAN/FD、高速485、EtherCAT,哪种总线才是最优解?

突破机器人通讯架构瓶颈,CAN/FD、高速485、EtherCAT,哪种总线才是最优解?

引言: 从协作机械臂到人形机器人,一文拆解主流总线技术选型困局 在机器人技术飞速发展的今天,从工厂流水线上的协作机械臂到科技展会上的人形机器人,它们的“神经系统”——通讯总线,正面临着前所未有的挑战。特斯拉Optimus的精准动作、波士顿动力Atlas的流畅跑跳,背后都是海量数据的高速交互。 然而,许多工程师在项目初期都会陷入同一个困境:面对RS485、CAN/CAN FD、EtherCAT等多种总线方案,究竟该如何选择? 本文将从机器人类型与需求分析出发,深入剖析三大主流总线技术的优劣,不提供“标准答案”,只提供一套科学的选择方法论。 一、机器人类型与通讯需求拆解 不同机器人的自由度、运动复杂度和性能要求,直接决定了其通讯总线的选择方向。下图概括了三种典型机器人的通讯需求与方案选择: 1. 低自由度/轻量型机器人(6-12自由度) 典型代表:协作机械臂、AGV小车、桌面级教育机器人。 核心需求:成本敏感、可靠性、易于集成、适度实时性(毫秒级)。这类机器人节点数相对较少,数据量不大,但对性价比要求极高。 现有主流方案:CAN

By Ne0inhk

一:ROS2+gazebo+PX4环境搭建:环境搭建到无人机起飞

前言 写博客记录学习的过程。 由于博客是安装完环境后写的,因此实际可能会有一些出入,但是实际上也大差不差的。 环境搭建 前置环境 * ROS2 humble * Gazebo Classic (11) 1.下载 PX4 源码 在你的 Home 目录下,用 Git 克隆 PX4 的代码仓库,并更新所有子模块。 git clone https://github.com/PX4/PX4-Autopilot.git --recursive 注意:由于这个源码中包含许多子模块,因此不建议到github主页下载zip再解压,这样做会缺失许多子模块。使用大陆的网络克隆起来会十分慢,因此强烈建议大家使用网络加速! 2.运行自动安装脚本 PX4 提供了自动化脚本,可以帮你安装编译仿真环境所需的所有依赖。 cd PX4-Autopilot bash ./Tools/setup/

By Ne0inhk
Flutter 三方库 whatsapp_bot_flutter 自动化社交矩阵鸿蒙多维协同适配指引:横向打通设备生态通信拦截管道、打造多模态实体机器人事件分发-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 whatsapp_bot_flutter 自动化社交矩阵鸿蒙多维协同适配指引:横向打通设备生态通信拦截管道、打造多模态实体机器人事件分发-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 whatsapp_bot_flutter 自动化社交矩阵鸿蒙多维协同适配指引:横向打通设备生态通信拦截管道、打造多模态实体机器人事件分发极限制化与消息群发堡垒 前言 在 OpenHarmony 的企业级服务助理、自动化通知分发系统或者是个人智能机器人应用中,如何打通全球主流的即时通讯链路是开发者必须跨越的门槛。whatsapp_bot_flutter 库为 Flutter 开发者提供了一套基于协议或 Web 端桥接的自动化社交机器人方案。本文将带大家在鸿蒙端实战适配该库,探索社交自动化的无限可能。 一、原直线性 / 概念介绍 1.1 基础原理/概念介绍 whatsapp_bot_flutter 的核心逻辑是基于 基于流的会话状态机与加密协议握手 (Encryption Protocol Handshake)。它模拟官方客户端的连接逻辑,通过与指定网关建立受保护的 WebSocket 链路,并实时监听业务事件流(消息、

By Ne0inhk