2023年7月10日发(作者:)
Gitlog⾼级⽤法格式化Log输出⾸先,这篇⽂章会展⽰⼏种git log格式化输出的例⼦。⼤多数例⼦只是通过标记向git log请求或多或少的信息。如果你不喜欢默认的git log格式,你可以⽤git config的别名功能来给你想要的格式创建⼀个快捷⽅式。Oneline--oneline标记把每⼀个提交压缩到了⼀⾏中。它默认只显⽰提交ID和提交信息的第⼀⾏。git log --oneline的输出⼀般是这样的:0e25143 Merge branch 'feature'ad8621a Fix a bug in the feature16b36c6 Add a new feature23ad9ad Add the initial code base它对于获得项⽬的总体情况很有帮助。Decorate很多时候,知道每个提交关联的分⽀或者标签很有⽤。--decorate标记让git log显⽰指向这个提交的所有引⽤(⽐如说分⽀、标签等)。这可以和另⼀个配置项⼀起使⽤。⽐如,执⾏git log --oneline --decorate 会将提交历史格式化成这样:0e25143 (HEAD, master) Merge branch 'feature'ad8621a (feature) Fix a bug in the feature16b36c6 Add a new feature23ad9ad (tag: v0.9) Add the initial code base在这个例⼦中,你(通过HEAD标记)可以看到最上⾯那个提交已经被checkout了,⽽且它还是master分⽀的尾端。第⼆个提交有另⼀个feature分⽀指向它,以及最后那个提交带有v0.9标签。分⽀、标签、HEAD还有提交历史是你Git仓库中包含的所有信息。因此,这个命令让你更完整地观察项⽬结构。Diffgit log提供了很多选项来显⽰两个提交之间的差异。其中最常⽤的两个是--stat和-p。--stat选项显⽰每次提交的⽂件增删数量(注意:修改⼀⾏记作增加⼀⾏且删去⼀⾏),当你想要查看提交引⼊的变化时这会⾮常有⽤。⽐如说,下⾯这个提交在⽂件中增加了67⾏,删去了38⾏。commit f2a238924e89ca1d4947662928218a06d39068c3Author: John
--oneline和
--decorate两个选项⼀起使⽤,这样会更容易查看哪个提交属于哪个分⽀:git log --graph --oneline --decorateFor a simple repository with just 2 branches, this will produce the following:* 0e25143 (HEAD, master) Merge branch 'feature'|
| * 16b36c6 Fix a bug in the new feature| * 23ad9ad Start a new feature* | ad8621a Fix a critical security issue|/
* 400e4b7 Fix typos in the documentation* 160e224 Add the initial code base星号表明这个提交所在的分⽀,所以上图的意思是23ad9ad和16b36c6这两个提交在topic分⽀上,其余的在master分⽀上。虽然这对简单的项⽬来说是个很好⽤的选择,但你可能会更喜欢gitk或SourceTree这些更强⼤的可视化⼯具来分析⼤型项⽬。⾃定义格式对于其他的git log格式需求,你都可以使⽤--pretty=format:"
--before 标记来按⽇期筛选。它们都接受好⼏种⽇期格式作为参数。⽐如说,下⾯的命令会显⽰2014年7⽉1⽇后(含)的提交:git log --after="2014-7-1"你也可以传⼊相对的⽇期,⽐如⼀周前("1 week ago")或者昨天("yesterday"):get log --after="yesterday"你可以同时提供--before 和
--after 来检索两个⽇期之间的提交。⽐如,为了显⽰2014年7⽉1⽇到2014年7⽉4⽇之间的提交,你可以这么写:git log --after="2014-7-1" --before="2014-7-4"注意--since 、--until 标记和--after 、--before标记分别是等价的。按作者当你只想看某⼀特定作者的提交的时候,你可以使⽤--author标记。它接受正则表达式,返回所有作者名字满⾜这个规则的提交。如果你知道那个作者的确切名字你可以直接传⼊⽂本字符串:git log --author="John"它会显⽰所有作者叫John的提交。作者名不⼀定是全匹配,只要包含那个⼦串就会匹配。你也可以⽤正则表达式来创建更复杂的检索。⽐如,下⾯这个命令检索名叫Mary或John的作者的提交。git log --author="John|Mary"注意作者的邮箱地址也算作是作者的名字,所以你也可以⽤这个选项来按邮箱检索。如果你的⼯作流区分提交者和作者,--committer也能以相同的⽅式使⽤。按提交信息按提交信息来过滤提交,你可以使⽤--grep标记。它和上⾯的--author标记差不多,只不过它搜索的是提交信息⽽不是作者。⽐如说,你的团队规范要求在提交信息中包括相关的issue编号,你可以⽤下⾯这个命令来显⽰这个issue相关的所有提交:git log --grep="JRA-224:"你也可以传⼊-i参数来忽略⼤⼩写匹配。按⽂件很多时候,你只对某个特定⽂件的更改感兴趣。为了显⽰某个特定⽂件的历史,你只需要传⼊⽂件路径。⽐如说,下⾯这个命令返回所有和和⽂件相关的提交:git log -- --告诉git log接下来的参数是⽂件路径⽽不是分⽀名。如果分⽀名和⽂件名不可能冲突,你可以省略--。按内容我们还可以根据源代码中某⼀⾏的增加和删除来搜索提交。这被称为pickaxe,它接受形如-S"
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688987902a192030.html
评论列表(0条)