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

Flutter 三方库 github_actions_toolkit 的鸿蒙化适配指南 - 实现 GitHub Actions 高效自动化任务构建、支持日志颜色修饰与核心工具集成

Flutter 三方库 github_actions_toolkit 的鸿蒙化适配指南 - 实现 GitHub Actions 高效自动化任务构建、支持日志颜色修饰与核心工具集成

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 github_actions_toolkit 的鸿蒙化适配指南 - 实现 GitHub Actions 高效自动化任务构建、支持日志颜色修饰与核心工具集成 前言 在进行 Flutter for OpenHarmony 的工程化 CI/CD(持续集成与交付)构建时,利用 GitHub Actions 进行自动化测试和流水线发布是主流选择。github_actions_toolkit 是一个专为编写非 Web 类 Action 脚本设计的工具集,它能让你在 Dart 脚本中轻松调用 Actions 的核心功能(如日志分级输出、设置导出变量等)。本文将探讨如何利用该库提升鸿蒙项目的自动化构建效率。 一、原理解析 / 概念介绍

By Ne0inhk
拒绝代码泄露与“屎山”迷航:GitNexus纯本地知识图谱+可视化关系网,引发GitHub 8800星狂欢

拒绝代码泄露与“屎山”迷航:GitNexus纯本地知识图谱+可视化关系网,引发GitHub 8800星狂欢

拒绝代码泄露与“屎山”迷航:GitNexus纯本地知识图谱+可视化关系网,引发GitHub 8800星狂欢 当你还在为接手"屎山代码"而痛苦抓头发,或者抱怨AI代码助手总是"幻觉"出不存在的函数时,GitNexus 已经把整个代码库变成了一张高维的可视化知识图谱——而且,这一切都发生在你本地的浏览器里,没有一行代码被传到云端。 一、一场席卷GitHub的"零服务器代码神器"风暴 2026年的春天,GitHub Trending榜单被一个名为 GitNexus 的开源项目以前所未有的速度强行霸榜。如果说之前的AI编程工具都在卷"如何帮你写代码",那么GitNexus则调转枪头,解决了一个更痛的痛点:“如何帮你和AI读懂代码”。 这不是普通的爆款,这是一场开发者为了数据主权发起的"起义": * 📈 惊人的增长曲线: 一周内暴涨数千Star,目前已突破 8.8K

By Ne0inhk

Git 入门:第一次将本地项目上传到 GitHub 仓库详细教程

一、背景信息         作为开发者,将本地代码托管到远程仓库(如 GitHub、Gitee 等)是一个基本且重要的技能。这不仅方便代码备份,还能轻松进行版本控制和团队协作。         本文将详细介绍如何将你已经存在的本地项目,第一次完整地上传到 GitHub 上的一个新的空白仓库。这与 git clone(从远程下载仓库)的操作是相反的。         我们将一步步走过 Git 命令的操作流程,并附带一些常见问题的处理和进阶技巧。 二、上传操作 2.1 目标读者         刚开始使用 Git,不熟悉命令行的开发者。         想将本地已有项目托管到 GitHub 的用户。 2.2 前提准备 1. 已安装 Git 并配置好用户信息(git config --global user.name "Your Name&

By Ne0inhk

Vscode中配置Claude code的git bash链接问题

解决VS Code中Claude Code的Git Bash链接问题 问题描述 在VS Code中使用Claude Code时出现错误提示: Error: Claude Code on Windows requires git-bash (https://git-scm.com/downloads/win). 确定git已经安装成果,且按照官方建议设置环境变量CLAUDE_CODE_GIT_BASH_PATH仍无效。 解决方案 删除特定环境变量 在Windows环境变量的用户变量部分,检查并删除CLAUDE_CODE_GIT_BASH_PATH变量(如果存在)。 将Git CMD添加到PATH 编辑用户变量中的Path,添加Git的cmd文件夹路径: * 用户级安装路径:%USERPROFILE%\AppData\Local\Programs\Git\cmd * 全局安装路径:C:\Program Files\

By Ne0inhk