Git和Intellij,我如何只提交一个更改文件的部分

82

我似乎无法只提交文件中的一部分更改,好像只能提交全部更改或者不提交任何更改,我正在使用Git和Intellij,这是否可能?

谢谢。


28
好的,以下是对 http://youtrack.jetbrains.com/issue/IDEA-63201 的翻译:问题描述:当使用IntelliJ IDEA编辑器将已经存在的Java文件转换为Kotlin文件时,会发现所有的泛型参数都会被删除掉。复现步骤:
  1. 新建一个Java类,并在其中添加以下代码:
public class Test { public void test(T arg) { // do something } }
  1. 使用IntelliJ IDEA打开该文件并执行“转换为Kotlin”操作。
  2. 在转换后的Kotlin文件中,你会发现泛型参数T已经被删除掉了。
预期结果:在转换为Kotlin文件后,泛型参数T应该会被正确地保留下来。版本信息:IntelliJ IDEA 2021.1 Ultimate版。
- LazyOne
正如 @mach 指出的那样,这是 https://dev59.com/ymEi5IYBdhLWcg3wd8AF 的重复。 - Charles Merriam
4个回答

50

更新 - 2018年2月:

2018.1的第一个EAP构建已经推出了!它被实现为每个代码块的复选框,因此您可以在提交之前有选择地勾选它们。享受吧!

更新 - 2017年12月:

好吧,2017.3版本刚刚发布,但这项功能没有加入其中。所以让我们期待2018.1版本吧。

更新 - 2017年11月:

这个功能已经“在进行中”几个月了。虽然2017.3 EAP版本已经发布了一段时间,但这个问题尚未完成。除了人们询问何时会完成之外,该问题没有其他更新,我认为这将延到2018年版本。

更新 - 2017年:

如评论中所述,这个问题已经开放多年了。但是现在它正在进展中,并计划在2017.3版本中推出,该版本目前正在进行EAP发布,并应于今年秋季推出。所以,在四年后,您终于可以在IDE中正确地执行它了。


现在我们只需要等待它变为真实,然后所有伟大的IntelliJ应用程序都将基于2017.3核心进行重新派生 :) 等不及了! - Krystian
我想在这里留下一条关于2018.1的评论,但你比我先发了 :) 无论如何,终于在IDEA中实现了git add -p - Minh Thai
希望在 JavaScript 中不要提交 debugger 行。 - Keegan 82
@Sean 是的,但我们无法编辑一个块然后提交它。我认为我们只能接受或拒绝一个块?因此,git add -p 仍然需要这样做。 - Number945
1
有没有一种方法可以记住我选择的行?这可能是一个非常好的功能。 - Eduard Grinchenko

32

在集成开发环境中不行。正如评论中所指出的,您可以使用命令行,但我发现使用GUI GIT客户端更容易(我使用Tower,但有许多其他可用的软件)。


28
真遗憾。这是我 Git 工作流程中一个重要的应用案例。目前,我使用 "git add --patch" 命令。 - starmonkey
2
参考:在使用 git add --patch 并选择要提交的 hunk 后,您需要运行 git commit -m XXX 来实际提交它。 - rogerdpack
1
截至2018年,Tower已经全面发布适用于Windows操作系统。 - David Gay

9

我建议您试用 SourceTree(Mac 和 Windows),它是一款免费的与GIT合作的绝佳工具。它具备您在一个舒适的UI中所需要的所有提交自由。

这是我的IntelliJ提交工作流程,从简单到复杂的任务:

  1. IntelliJ
  2. SourceTree
  3. shell GIT.

5

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