繁体   English   中英

如何从 git 日志中获取特定行 --merges -n 1

[英]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 中找到特定的线路

这需要一个三步过程。

  1. 找到您关心的特定提交。 如果git log是查找提交的可用方法,您可以将此与步骤 2 结合使用,但通常找到它的正确方法是使用单独的git rev-list命令。

  2. git log--format指令一起使用,与您的操作方式非常相似(只是省略了设置自己单独格式的--oneline )。 使用%B格式获取邮件正文,包括主题行,就像您正在做的那样。

  3. 选择所需的行,例如,使用sedgrep作为正则表达式。 也就是说,将步骤 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM