Mic*_*ael 4 diff git text-processing
我有一个文本文件中的用户名列表。我更新这个文件并提交它。我正在寻找一种方法来获取自上次提交以来的更改列表。
我根本不需要任何差异格式,我只想获得自上次提交以来每行一个用户名的输出(因为它们被添加到每个提交中)。
我找不到从输出中删除所有 git diff 语法的设置,因此它纯粹是仅添加的新行列表。
原始文件:
user1
user2
user3
Run Code Online (Sandbox Code Playgroud)
然后我添加
user4
user5
Run Code Online (Sandbox Code Playgroud)
然后提交。
我希望能够进行 git diff 并仅查看:
user4
user5
Run Code Online (Sandbox Code Playgroud)
您可以结合前瞻/后瞻来 grep diff 输出:
git diff --unified=0 | grep -Po '(?<=^\+)(?!\+\+).*'
Run Code Online (Sandbox Code Playgroud)
(?<=^\+)是对以以下开头的行的积极回顾+(?!\+\+)是一个否定的前瞻,以防止匹配以+++ a/path/to/file.git选项--unified=0只是为了减少过滤删除差异上下文的行数,但它是可选的。
可能有更好的,我对 PCRE 不太流利。