【问题标题】:Git: How to reuse/retain commit messages after 'git reset'?Git:“git reset”后如何重用/保留提交消息?
【发布时间】:2013-05-27 07:42:40
【问题描述】:

作为 Git 用户,我经常遇到这样的情况,即我需要以不适合 --amendrebase -iwith fixup 提交的方式重新处理一个或多个提交。通常我会做类似的事情

git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?

我非常重视明智的组合提交消息。它们通常包含较大的文本,其中包含更改的参考和理由。到目前为止,我对通过未排序的git refloggit log 和复制粘贴过程恢复我的旧提交消息的漫长过程感到非常恼火。

有没有更好的方法来解决这个问题?如果我包含多个提交,它会如何?

编辑: 经过一番思考后,我认为我正在寻找的是一些类似于 git stash 的功能,用于提交消息,而没有修复/修改提交合适。

【问题讨论】:

  • 如果您所做的只是git reset head~1,那么您的旧提交消息不会只是reflog 中的第二个条目吗?
  • 是的 - 但是我如何能够在不复制和粘贴的情况下重用消息(这通常需要手动取消缩进)
  • 现在,只需打开gitk。这样,您甚至不必使用 reflog。或者,使用rev-parse <branch> 在重置之前获取您的哈希并使用 ibizaman 的答案。

标签: git commit git-rebase git-reset commit-message


【解决方案1】:

git reset之后,这个单行就可以了:

git commit --reuse-message=HEAD@{1}

甚至更短:

git commit -C HEAD@{1}

您可以使用@user2718704 提供的其他选项。

【讨论】:

  • 短:git commit -C@@{1}
  • 重置后,ORIG_HEAD 被设置。我发现git commit --reuse-message=ORIG_HEAD 是最清楚的。
【解决方案2】:

当运行“git commit”命令时,你必须检查以下选项,

重复使用,

--reuse-message=<commit>

要在重复使用时进行编辑,

--reedit-message=<commit>

要更换作者,

--reset-author

【讨论】:

  • 将此标记为新解决方案,因为它提供了最全面的答案。虽然这个解决方案仍然不能完全解决我的“检索”问题。
【解决方案3】:

如果你可以破解、修复、破解然后运行git commit --amend --no-edit,为什么要重置;因此,保留您的原始提交消息。

要使其适用于多个提交,只需使用您的最新更改创建一个临时提交,然后使用交互式 rebase 将先前的提交(包含良好的提交消息)压缩为新的临时提交,保留旧提交。

【讨论】:

  • 在做交互式rebase的时候,你甚至可以使用fixup指令声明后面的commit是为了修复之前的commit,它会自动使用原来的commit message,discard from修复提交。
  • 例如,如果我想重新合并一个强制更新的拉取请求。或者如果提交不是最后一个并且不能基于 HEAD 轻松修复并且更容易重做。
  • @BenTebulin 好吧,交互式 rebase 允许您修改指定提交范围内的任何提交。严格来说,必须修改的不是 HEAD 提交。
  • @mart1n 感谢您在rebase -i 中挑选出edit。从来没有在那种情况下使用过它。对于其余情况,例如重新合并另一个答案更适合我的问题,因此我将其标记为答案。
  • Intellij 的作用域只对尚未提交的文件进行操作。例如,将文件重置为未提交很有用,这样可以指示 intellij 对文件进行 lint,然后使用相同的消息重新提交这些文件。由于 intellij 范围的限制,修改不会起作用。
【解决方案4】:

您可以考虑git commit --reset-author -c &lt;commit&gt;,通过编辑和当前时间重用提交消息。

【讨论】:

    猜你喜欢
    • 2013-06-10
    • 2012-06-05
    • 1970-01-01
    • 2020-05-13
    • 2019-07-14
    • 2015-10-19
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多