在git commit中排除大块内的行

时间:2018-10-05 01:37:37

标签: git intellij-idea

IntelliJ中是否有办法从git commit中排除代码块中的某些行?

例如,我有以下更改:-

enter image description here

我要排除提交的最后一行( ADMIN_API_URL )。

我知道我可以通过单击行号49(as described here)旁边的那个小复选框来进行部分提交,但这将删除整个块。我只想删除特定的行。如果没有直截了当的方法,是否有办法将一个大块拆分为多个大块?这样我就可以做我想做的事。

我可以在Sourcetree中通过右键单击某些行并选择“ Stage Selected Lines”来执行此操作。只是想知道如何在IntelliJ中做到这一点,而且,最好知道如何使用git命令来做到这一点。

2 个答案:

答案 0 :(得分:0)

  

最好知道如何使用git命令来做到这一点。

进行git add -p时,您可以选择编辑块:然后可以删除最后一行。

我不认为InelliJ在applying a patch时会提供类似的选项。参见issue IDEA-63201

答案 1 :(得分:0)

如果您使用git add -p命令使用git命令行,则可以实现以下目的: 出现提示时,通过键入“ e”来编辑大块:

$ git add -p
Stage this hunk [y,n,q,a,d,/,e,?]? e

打开默认的文本编辑器,将行+ADMIN_API_URL替换为+(删除文本ADMIN_API_URL)。

保存并退出编辑器,您已完成

您可以执行

  • git diff --staged来查看您的下一次提交将不包含最后一行,
  • git diff,以查看最后一行仍存在于您的工作副本中。