IntelliJ注释选项灰掉了

58
我想查看谁在Intellij 15中更改了一行代码。我知道可以使用git blame,但我想学习如何正确地在Intellij中进行此操作。我右键单击文件上的行号,但是当我获得上下文菜单时,注释选项是灰色的。我缺少哪个设置?
我查看了this页面,但没有找到答案。我错过了什么?

1
你是否已经为你的项目正确设置了版本控制设置? - Bas Leijdekkers
@BasLeijdekkers 我想是这样,但如果有建议能帮忙改进的话我也很乐意听取。我尝试在IntelliJ中进行checkout和commit操作,似乎运行良好。 - ford prefect
显示文件的历史记录怎么样?可以吗? - Bas Leijdekkers
@BasLeijdekkers 嗯,那个很好用。 - ford prefect
我通过遵循以下回答解决了这个问题:https://dev59.com/WlwZ5IYBdhLWcg3wVfAC#33386397 - aligur
12个回答

45

如果您检查文件 > 设置 > 版本控制,并发现您当前的项目在“未注册根”下列出,请前往(菜单栏上)VCS > 启用版本控制集成。它将要求您选择使用的VCS工具,然后单击确定,您将拥有所有集成工作(包括使用 git blame 的注释功能)。


1
检查 文件 > 设置 > 版本控制 对我很有用,即使在启用集成后,因为根路径的分辨率涉及符号链接。添加非符号链接路径后,它按预期工作。 - snapfractalpop
当前版本的IntelliJ中没有“启用版本控制集成”选项。如何在当前版本中进行操作? - eis
3
啊,找到了!我需要进入“文件 > 设置 > 版本控制”,找到未注册根目录的项目并点击加号(“+”)按钮。之后,一切正常运作。 - eis

41

@activedecay的回答让我找到了正确的方向。在我的情况下,我有一个多模块项目 - 每个都有一个单独的git repo - 但我们都在同一个workspace中。

在我的情况下,Intellij IDEA 2017.2版本,偏好设置 -> 版本控制(2022年更新:或者是 偏好设置 > 版本控制 > 目录映射)面板显示了所有项目根目录的列表。具有禁用“Annotate”选项的模块位于“未注册的根”部分中。

要解决这个问题,我选择了该模块,并按下下方工具栏中的“+”图标,将模块根目录与Intellij VCS注册。更改是立即生效的,“Annotate”选项也变得可用。


1
这个方法在我的IntelliJ 2022.1版本中有效,尽管我是在首选项 > 版本控制 > 目录映射下找到了项目根目录。 - Logan

19

看起来这是一个新项目。首先配置像 Git 这样的版本控制,然后至少提交一次。第一次提交后,“Annotate”选项将不再灰化。

同时更新 Git 以获取任何新版本。


对我来说没有帮助:( 我使用的是Idea 2018.2和Git 2.19.0以及Mac OS 10.13。Git是通过Homebrew下载的。 - Valerii

14

您的版本控制系统未启用,因此出现了问题。以下是解决方案:

  1. 点击菜单栏中的版本控制选项
  2. 启用版本控制
  3. 选择您的版本控制
  4. 完成后,您应该能够使用注释选项。

简洁明了的答案。并且它在2022年起作用了! - Sebastialonso

13
  1. 确保文件已被版本控制跟踪
  2. 将项目添加到“版本控制”设置中 version control settings

我应该使用哪个选项来选择“VCS”?我没有看到Subversion,而我的repo使用的就是它。 - JohnK
结果发现我需要安装Subversion插件。现在可以正常工作了。 - JohnK

5

我曾经遇到过与注释功能变灰相同的问题,但是版本控制系统已经设置好了。编辑当前的版本控制系统目录映射可以解决这个问题。

请按以下步骤操作:

  • 进入设置 -> 版本控制
  • 找到你的应用程序所在的项目,点击它
  • 点击笔图标进行编辑
  • 点击确定,然后点击确定关闭主对话框

对我来说,问题出在git可执行文件上。它不在给定的路径中。我必须更改路径,然后它才能正常工作。 - ssi-anik
编辑当前版本控制系统目录映射解决了我的问题。对我来说,选择VCS目录到父目录起作用了,不知何故,IntelliJ选择了一个子目录作为VCS根目录。 - Hashmatullah Noorzai

4
在版本控制设置中,请确保删除任何未注册的根目录。我遇到了类似的问题,发现有一个未注册的根目录条目,删除这个不需要的条目后,我就能够在文件上进行注释了。

unregistered roots


1

以下两张屏幕截图将解决您的问题: 1. 在此输入图片描述

  1. enter image description here
我希望在这些步骤之后,您将能够看到谁更改了一行。

1
这是我遵循的步骤: 进入VCS -> 从版本控制中检出 -> Git -> 提供您的存储库的URL。
现在将启用注释选项。

0

我曾经遇到过同样的问题,但我的版本控制系统设置都已正确配置。事实证明,git本身将该文件视为全新文件,因此没有任何历史记录。该文件实际上并不是新文件,而只是被重命名了。虽然我的重命名更改未被暂存,但git将其视为两个单独的文件:旧文件的删除和新文件的创建。但是,一旦我git add了“删除”的文件和“新”的文件,git就理解它实际上是一个重命名,并且IntelliJ能够按预期对文件进行注释。

我不确定为什么git在未暂存时无法理解重命名,但希望这可以帮助某些人!


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