【问题标题】:how to merge two git commits into one?如何将两个 git 提交合并为一个?
【发布时间】:2013-10-11 07:30:40
【问题描述】:

我已经提交了两次,实际上一次提交就足够了,我进行两次提交的原因是因为我在第一次提交后忘记添加一个文件,所以我添加它并再次提交,之后我发现我发现我用相同的评论做了两个提交,那么如何将这两个提交合并为一个呢?

* 3e381e7 - (HEAD, master) now i have add load script which can open many pages automatically at one time (4 seconds ago) 
* 2d97025 - now i have add load script which can open many pages automatically at one time (21 seconds ago) 

如何合并提交 3e381e7 和 2d97025 以便只有一个提交日志?

【问题讨论】:

  • 为了将来参考,使用--amend 标志来编辑以前的提交而不是创建一个新的。

标签: git git-commit git-log


【解决方案1】:

将两个提交合并为一个称为“压缩”。做一个交互式变基,

git rebase -i HEAD~3

然后在打开的文本编辑器中,将带有2d97025 的行更改为以单词“squash”开头,然后保护文件并退出编辑器。

【讨论】:

  • 要更改为以 squash 开头的行将是包含 3e381e7 的行,它应该是列出提交的最后一行。在这里我会使用fixup 而不是squash,因为听起来第一次提交时的提交消息很好。
【解决方案2】:

互动rebase是你的朋友:

git rebase -i

您也可以执行 git reset --soft 后跟 git commit --amend 但变基是最简单的方法。

【讨论】:

    猜你喜欢
    • 2012-09-13
    • 2023-01-12
    • 2021-10-06
    • 2019-01-04
    • 2011-10-16
    • 2012-03-02
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多