[英]How to get a particular line from git log --merges -n 1
当我尝试执行git log --merges -n 1
时,我看到以下内容 output
Merge: 12hjkda1222
Author: testuser
Date: Tue Sep 1 22:38:42 2020 -0400
test-1.1
Merge in proj/repo from release/test-1.1 to master
* commit 'aczlxhclzsjcfpod2369841':
release
我只想要在 proj/repo 中从 release/test-1.1 合并到 master的行。 尝试使用 git log --oneline --format=%B -n 1 HEAD 和 git log --oneline --format=%B -n 1 HEAD | head -n 1 这不是 output 我正在寻找的结果。 有没有办法让我从 output 中找到特定的线路
这需要一个三步过程。
找到您关心的特定提交。 如果git log
是查找提交的可用方法,您可以将此与步骤 2 结合使用,但通常找到它的正确方法是使用单独的git rev-list
命令。
将git log
与--format
指令一起使用,与您的操作方式非常相似(只是省略了设置自己单独格式的--oneline
)。 使用%B
格式获取邮件正文,包括主题行,就像您正在做的那样。
选择所需的行,例如,使用sed
或grep
作为正则表达式。 也就是说,将步骤 2 中的命令与 pipe 一起使用到第二个命令中,以找到您喜欢的行。
由于在这种情况下,步骤 1 和 2 可以很容易地结合起来,您可以使用,例如:
git log --merges -n 1 --format=%B | grep '^Merge '
要么:
git log --merges -n 1 --format=%B | sed -n -e 3p
(请注意,它们之间的区别在于grep
命令将找到与模式匹配的每一行,而sed
命令只是打印第三行,而不管哪一行(如果有的话)以Merge
开头)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.