[英]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.