给你后悔药你会用吗 git commit --amend

首先标题党了一波,本文主要是为了讲解 git commit --amend这个命令的使用。

是什么

git commit --amend命令,也叫追加提交,它可以在不增加一个新的 commit 的情况下,将新修改的代码追加到前一次的commit 中。

使用该命令都好处是避免多余的无用提交。

如何使用

!!!重要的事情放上面,git commit --amend 要避免修改其他开发人员工作所用的提交。

举几个具体的🌰例子来看下

需要补交提交内容

当我们在进行一次提交后,突然发现我们漏掉了一个文件未提交,那么这个时候我们理想状态是,将遗漏的文件补交到之前的 commit , 如果我们不会 git commit --amend那么我们就只能新建一个 commit 去实施补交的这个操作(其他reset 或者 squash也行,忽略)。

我们可以进行下述操作

sql 复制代码
// 将要添加的内容添加到暂存区
git add .
// 将当前暂存区的内容,添加到上次的commit
git commit --amend

当我们使用了上述指令,就可以打开git 提交日志进行修改,此命令可在不更改快照的情况下编辑当前的提交消息。如下图所示

在这里我们也可以对提交信息进行修改,如果需要的话。

这样我们就实现了将内容追加到上一次的提交。细心的朋友们这时就会发现,你这个太麻烦了,我只是追加一个内容(不修改提交信息),就需要这么多步骤吗,那么其实是有简单的解决方案

css 复制代码
git commit --amend --no-edit

这样就可以直接将提交内容进行追加了。

只修改提交信息

当我们进行一次提交之后,我们发现提交的描述不太准确,这时也可以用这个命令进行修改 ,查看当前git 历史

对上次提交信息进行修改,可以使用

sql 复制代码
git commit --amend -m "feat: 完成了xxx功能"

其实 这个命令也可以将暂存区的内容一同合并到上次的提交

end

还可以做什么

还可以使用git commit --amend来对提交记录进行压缩,使得整个分支只有一个commit。

具体步骤就不列举了,因为不建议这样操作,如果要压缩git commit, 选择git squash是一个更好的选择,具体可以看下面这个文章。

juejin.cn/post/741874...

amend 不只是改变最近的提交,它将完全取代最近的提交,这意味着经过amend的提交将是一个具有自己的ref的新实体。对Git来说,它将看起来像一个全新的提交。

结语

在写项目的时候遇到了上面的场景,于是学习了一下,写出来与大家分享。不要嫌弃质量低哈,如果有不足,欢迎指出,共勉

祝诸君武运昌隆。

世界上是没有真正的后悔药哒,要做的是让未来不再后悔。

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
Winlifes4 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端