首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从git diff日志中删除索引

从git diff日志中删除索引
EN

Stack Overflow用户
提问于 2021-05-10 11:28:18
回答 2查看 219关注 0票数 1
代码语言:javascript
复制
diff --git a/sample.py b/sample.py
index ce490c6..2e069ee 100644
--- a/sample.py
+++ b/sample.py
@@ -1,4 +1,6 @@
print("Hello world")
print("Sample project")
print("git log issue")
-print("git log issue demo")
\ No newline at end of file
+print("git log issue demo")
+print("different changes in log")
+print("sample git issues")

我想从git日志中删除前四行,这说明了diff的元数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-10 11:43:51

您可以很容易地使用sed来完成它。您可以使用,git diff | sed -n '5,$p'或更一般的

git diff | sed -n 'm,$p'

这意味着您将sedmth行打印到文件的最后一行,而-n则禁止模式空间的自动打印。

票数 1
EN

Stack Overflow用户

发布于 2021-05-10 13:33:13

有大量的文本处理工具,如果您想要保留颜色,您必须告诉他们要寻找什么,这里有一个不依赖于特定的计数,但只是剥离了diff@@之间的所有东西。

(如果您还不熟悉正则表达式,那么它们可能是令人望而生畏的,但是下面的条形码解析为\x1b[^m]*m匹配在否则的纯文本中的颜色转义,它周围的^()*表示行开始时父母中的任意数量的内容,因此^(\x1b[^m]*m)*在行的开头匹配任意数量的颜色转义。)

代码语言:javascript
复制
git log --color=always -p \
| sed -E '/^(\x1b[^m]*m)*diff/,/^(\x1b[^m]*m)*@@/ {//!d}'

去掉颜色处理会使代码更容易读懂,结果也就不太好读了,

代码语言:javascript
复制
git log -p  --color=never -p \
| sed -E '/^diff/,/^@@/ {//!d}'

sed中,//说“再次搜索您搜索的最后一个模式”,并且在从第一行开始作为第一行模式开始的模式范围内,在随后的所有行中以最后一行模式开始。因此,//!d作为模式范围命令删除所有不是第一行或最后一行的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67469607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档