Git 合并多次 Commit 及在 Magit 中的操作

发布于 2025-01-30 00:43:23 字数 1572 浏览 8 评论 0

用 Git 的时候经常会有这么一个需求,就是提交了一次 Commit 后发现还有一个文件忘了 提交进去,或者最近的几次提交都是相似的更新内容。那可以 Reset 到之前的状态再重新 提交,虽然可行,但有的时候会很麻烦。其实在 Git 中 Rebase 也可以简单地实现这个功能。

0.1 查看 Git 记录

使用 git log 可以查看最近的提交记录,可以看到我最近提交了三个具有同样信息的 Commit。

0.2 合并记录

执行 git rebase -i HEAD~3 对最近的三个 Commit 进行合并,其实此处的真实含义是以当前节点前面的第三个节点为基,并计算当前与该节点的差异,并重新生成 Commit。Git 会自动地打开 Vim 或什么其它编辑器你可以看到以下文本。

你可以看到每一个 Commit 最前面都有一个描述词,该描述词决定了如何处理该 Commit 。 如此处我只想保留第一个 Commit 的 Message,那么我就将后面两个 Commit 改为 fixup

然后保存退出,Git 会自动合并多个历史。如果有冲突,记得解决冲突后,使用 git rebase --continue 重新回到当前的过程。

0.3 使用 Magit 合并记录

使用 Magit 进行记录合并与 Git 命令行是相似的。将光标放在要作为基的 Commit 上,并使用快捷键 r i

不同之处在于 Magit 中可以很方便地利用快捷键完成工作。

可以看到注释中已经贴心地列出了快捷键,我们只需要在第二个和第三个 pick 上按下 f ,然后 C-c C-c 提交即可。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

時窥

暂无简介

文章
评论
28 人气
更多

推荐作者

夢野间

文章 0 评论 0

百度③文鱼

文章 0 评论 0

小草泠泠

文章 0 评论 0

zhuwenyan

文章 0 评论 0

weirdo

文章 0 评论 0

坚持沉默

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文