gpt4 book ai didi

git - 如何grep git diff 以忽略没有特定关键字的更改?

转载 作者:太空狗 更新时间:2023-10-29 14:43:08 26 4
gpt4 key购买 nike

我需要在重构(我更改日志库的地方)之后执行反向 git diff,以找到与我需要单独提交的主要重构无关的几行。我读过这个 question -G 标志看起来很有前途,但如何反转呢?即不包含字符串 log 的更改。

最佳答案

使用您的 pager对于这种任务。你的寻呼机是一个程序,它允许你一次一页地浏览诸如 git diffgit log 以及许多其他命令的输出。它具有强大的搜索功能,并且这些功能与底层命令无关。

现在常用的寻呼机是less , 对之前默认的 more 的一种演绎。 man less 将让您了解它的所有功能,包括...

   /pattern
Search forward in the file for the N-th line containing the pattern. N
defaults to 1. The pattern is a regular expression, as recognized by the
regular expression library supplied by your system. The search starts at
the first line displayed (but see the -a and -j options, which change this).

Certain characters are special if entered at the beginning of the pattern;
they modify the type of search rather than become part of the pattern:

^N or !
Search for lines which do NOT match the pattern.

所以 / 然后 ! 你会看到 Non-match/。然后键入 log 或任何您想跳过的内容。 less 仍会突出显示 log 的所有实例,但您可以使用 n 前后移动所有不匹配的行>N.


更好的解决方案是使用 git add -p 将这些行分别添加到 git add 中。这将允许您一次暂存单个更改的大块,跳过更改或整个文件。然后只提交那些部分。参见 Interactive Staging in the Git Book .

关于git - 如何grep git diff 以忽略没有特定关键字的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com