使用IntelliJ修改git提交信息

118

在使用IntelliJ时,是否可以修订git提交消息,还是必须使用命令行?

请问如何进行此操作?

10个回答

100

查看 => 工具窗口 => 版本控制 (Windows (Alt + 9) / OS X (Cmd + 9))

IntelliJ 2017.1 及更高版本 => 进入 日志,右键单击 + 重命名 或按 F2 键。

IntelliJ rename commit

当你在相同的分支上时(你正在检出的分支相同)


4
除了可能通过命令行外,这似乎是使用WebStorm 2017.3修订注释(而无需进行更改以强制提交)的唯一方法。可以通过Alt+9或View->Tool Windows->Version Control打开版本控制窗口。 - CODE-REaD
3
在 Idea 2017.3 中,所描述的命令名为“Reword...”,而非“Rename”(如屏幕截图所示:-))。F2也可以使用。 - Volker Seibt
4
有人知道为什么我的IntelliJ(2019.3.1)中的“编辑提交消息...”是灰色的吗? - Cold_Class
@Cold_Class 这是您的提交信息吗?我有一个被淡化的合并。像 Merge branch 'develop' of REPO_URL into BRANCH_NAME,这是您所指的吗? - Stefan Rein
@StefanRein - 今天我遇到了这个问题,后来意识到我处于挑选模式 - 必须中止此操作。 - Lost Crotchet
1
@Cold_Class 我的选项变灰是因为我没有查看与我签出的分支相同的分支。 - Matthew Wilcoxson

74

支持修改:调用“提交更改”并在提交对话框中选择复选框“修改提交”。然后按下“提交”按钮,提交将被修改为之前的提交。

不过,这种支持是有限的:

  • 您无法查看被修改的提交的详细信息,
  • 如果您没有未提交的更改(例如,您只想更改先前提交的消息而不添加更多更改),则无法调用“提交”。

13
常见的应对第二个问题的方法是在文件中添加一些不重要的字符(例如空格),这样您就可以提交了。 - leokom
JetBrains支持团队向我推荐了增强请求[IDEA-81428](https://youtrack.jetbrains.com/issue/IDEA-81428)和[IDEA-57979](https://youtrack.jetbrains.com/issue/IDEA-57979)。这个问题和答案也适用于PyCharm。 - Wil Cooley
10
自2017年2月以来,以下回答已经不再准确。现在可以轻松完成:版本控制面板> 日志选项卡> 选择最后一次提交> 按F2键。https://www.jetbrains.com/idea/whatsnew/#v2017-2-version-control - DLight

41

最终终于找到了解决方法...这个问题困扰了我好几天。

  1. 进入版本控制-日志标签页
  2. 选择你的更改下面的一个版本。右键点击并选择“重置当前分支到此处”
  3. 选择“软重置”,点击重置,这非常重要,你只需要点击“软重置”,这样你的更改就不会丢失。
  4. 检查版本控制、本地更改,你的更改将在同一变更列表中可用。
  5. 右键单击变更列表并选择提交。
  6. 它将显示你以前的提交消息,现在你可以修改评论并进行提交和推送。

Note: This solution uses android studio as intellij platform. 

1
对我来说,在IntelliJ 17.3中,我可以在版本控制:日志中使用“重命名...(F2)”菜单项直接编辑提交消息。 - Claes Mogren

32

你也可以使用终端和类似powershell、cmd或bash(取决于你的系统)的shell进入你的git文件夹,然后输入以下命令:

git commit --amend -m "your new commit message"

3
由于IntelliJ提供了集成终端,你甚至不需要离开IDE。这可能是最快的方式。 - walen
你如何保存修改后的提交?我似乎无法找到退出命令。是CTRL-x CTRL-q吗? - JPM
在IntelliJ中提交时有修订选项。 - Gaurav

15

在 rebase 过程中可以编辑提交信息。从 VCS 菜单中调用 Rebase 命令,确认分支设置,然后点击 Rebase 按钮。您将看到一个未推送的提交列表。选择想要编辑的提交信息左侧的下拉菜单中的 reword 动作。

有关其他 rebase 动作的详细信息,请参阅 git 文档上的 Rewriting History


2
这是其中一个更好的选项。如果你已经将你的更改推送到了源代码库,IDE 将会警告你。这是一件好事,因为如果有人已经拉取了你推送的提交,修改提交,即使只是修改提交信息,也意味着每个已经拉取了之前提交的人都需要进行变基操作。这通常是一件“坏事”。 - Chris Cogdon

3
在日志选项卡中,选择提交并按F2(Reword)即可。就是这样。

3
在IntelliJ 2021.3中,只需选择“编辑提交信息…”菜单下拉即可。

Screenshot of IntelliJ menu item

这个功能在Git工具窗口中可用。如果你已经检出了相同的分支,它也可以在比较分支窗口中使用,否则它会变灰。

2
公正地说,最快的方法是通过命令行完成。我知道楼主在询问如何通过IntelliJ完成(这也是我找到这个问题的原因,我试图在PHPStorm中完成),但是实际上,通过命令行更加容易。当你在终端/命令提示符中进入正确的文件夹时,输入以下命令即可:
git commit --amend

接下来会显示最后一次提交的信息,只需编辑文本并保存文件,工作完成!

如果您想更改编辑器(默认为vi),则使用此命令,将“vim”更改为您选择的编辑器。

git config --global core.editor "vim"

即 Windows 用户可能想要...
git config --global core.editor "notepad"

来源:https://help.github.com/articles/changing-a-commit-message/


1
你的答案与其他答案太相似,甚至提供了一种更不方便的方法。git commit --amend -m my_new_message 可以直接从命令行更改提交信息。 - Christopher J.
我认为这个不错。我们可以根据错误信息修改消息。"VI"编辑器也很好。 - Leo Lee
@ChristopherJ. - 不好意思,我在发布这条消息时没有看到你的回复。不过,我还是会把它留在这里,因为它有编辑器更改添加功能,如果您不喜欢默认设置的话。 - Steve Childs

2

如果是2018.3或同样的2017.1版本

Alt + 9(版本控制窗口)

右键单击 -> 上下文菜单中点击“Reword... F2

或者

快捷键F2,您可以编辑消息。


0
在JetBrains中 转到视图->版本控制 -> 这将打开屏幕底部的版本控制日志选项卡 进入日志,您可以查看最后一次提交的内容 右键单击它并选择撤消提交 太棒了!您已还原所有提交并删除了消息。如果您只想更改提交消息,也可以选择执行软重置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接