簡體   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