我正在尝试仅获取git日志的前40个字符,我当前无法正常工作的命令是:
git log| cut -c 1-40 >> some_file
这将输出整个日志。
Kinda是Linux新手,有什么建议吗?
编辑:
git log| head -n1 >> some_file
每个@Someprogrammerdude建议的工作命令
该| 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
。