簡體   English   中英

獲取git log的前'x'個字符

[英]Get first 'x' characters of git log

我正在嘗試僅獲取git日志的前40個字符,我當前無法正常工作的命令是:

git log <branch_name> | cut -c 1-40 >> some_file

這將輸出整個日志。

Kinda是Linux新手,有什么建議嗎?

編輯:

git log <branch_name> | head -n1 >> some_file

每個@Someprogrammerdude建議的工作命令

| head | head方法很好head程序是一個通用過濾器,用於提取輸入流或某些輸入文件的前半部分-但值得注意的是,默認git log輸出的第一行由commit后面的單詞組成由提交的哈希值(可能並非巧合)拼寫為40個字符:

$ git log | head -n 1
commit 8f60064c1f538f06e1c579cbd9840b86b10bcd3d

由於commit (包括尾隨空格)的長度為8個字符,因此,如果將其切成40個字符,則會得到提交ID的32個字符的縮寫。

由於git log通常以向您顯示HEAD提交開始,所以這一切都意味着您正在獲取HEAD提交的哈希ID(的一部分),並且在Git中有一種更直接的方法:

$ git rev-parse HEAD
8f60064c1f538f06e1c579cbd9840b86b10bcd3d

這省略了commit (和空格)一詞,但給了您我懷疑您關心的40個字符。 您可以通過添加--short--short= count將哈希縮短為任意數量的字符:

$ git rev-parse --short=12 HEAD
8f60064c1f53

通常,將單個名稱(例如master或標記名或HEAD為Git對象標識符(SHA-1哈希)的方法是使用git rev-parse

基本上,它回顯多行。 這樣您的命令每行剪切40個字符。

如果您確實想要前40個字符(與行模式無關),請執行以下命令

git log <branch_name> | awk '{print substr($0,1,40);exit}' 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM