git - 如何在 git commit 失败后重用挂起的评论?

标签 git git-commit

我使用外部编辑器为“git commit”填充评论,如果由于某种原因提交失败,所有评论都会消失。有没有什么地方可以存储我对失败的提交的评论?

是否有任何特定的 git 命令可以重用这些待处理的评论或重复提交待处理的评论?

最佳答案

tl;博士:

  1. 运行 git commit -eF .git/COMMIT_EDITMSG

  1. 运行(仅一次):git config --global alias.commit-reuse 'commit -eF .git/COMMIT_EDITMSG'
  2. 运行(每当你想重用一条消息时):git commit-reuse

如果您在外部编辑器中编写提交消息,该消息将存储在 .git/COMMIT_EDITMSG 中。即使随后提交失败,消息也会存储在那里。但是,下次您执行 git commit 时,git 会重置文件并在那里打开编辑器。

您可以使用 -F 选项告诉 git 使用现有文件的内容作为您的提交消息。在提交失败后,您可以执行 git commit -F .git/COMMIT_EDITMSG,git 将立即使用存储在该文件中的消息创建提交。但是,请注意,如果您这样做,注释行将包含在提交消息中:

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# ...

您还可以使用 -e 选项让 git 在编辑器中打开文件。使用编辑器发出的提交消息永远不会包含注释行。这也将允许您在创建提交之前编辑消息。因此,只需在 git commit 失败后使用 git commit -eF .git/COMMIT_EDITMSG。但是请注意,如果 .git/COMMIT_EDITMSG 不存在,例如您刚刚克隆了存储库,则此命令将失败。

如果你不想记住 -eF .git/COMMIT_EDITMSG 选项,你可以在 git 中创建一个别名。您可以通过运行永久添加别名

git config --global alias.commit-reuse 'commit -eF .git/COMMIT_EDITMSG'

从现在开始,只要您想重用失败提交的消息,就可以编写 git commit-reuse。如果你想再次删除别名,你可以从 ~/.gitconfig 中删除相关行。

关于git - 如何在 git commit 失败后重用挂起的评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20580611/

相关文章:

用于 git clone 的 Python 脚本,无需在提示符下输入密码

git:悬挂的 Blob

git-commit - Git Squash 并删除以前的提交

Git 提交不使用转发的 ssh 代理?

git - 如何删除当前 HEAD 之后的提交?

ios - 与 Storyboard merge 问题

git - VSTS 和 Git : Why does squashing my DEV branch while merging to master says that DEV is both behind and ahead of master?

github - 如何从提交 id 中找到分支

git - 从 Git 提交中获取已删除文件列表

git - 我如何在一台开发计算机上拥有多个git帐户?