有没有办法包装git commit注释(通过时查看git log),这样它们就不会在行尾被截断?似乎应该有一个非常简单的解决方案,但我一直找不到。
谢谢。
有没有办法包装git commit注释(通过时查看git log),这样它们就不会在行尾被截断?似乎应该有一个非常简单的解决方案,但我一直找不到。
谢谢。
-S查看git日志时使用+ Enter。我在这里的答案中的详细信息:stackoverflow.com/a/48196094/4561887
Answers:
编辑2011:其他 答案(建议使用)突出显示了可以修改git的默认分页器less的选项。
我的答案末尾的言论仍然成立:即使您看到长提交消息,也不意味着其他必须处理所述(长)消息的工具也可以对其进行处理。
有关提交消息格式策略的原始答案(2010年1月):
根据此博客的介绍,由于git log不进行任何包装,因此您需要使用适当的行长来格式化注释
git log对提交消息不做任何特殊的特殊包装。
使用默认的传呼机时less -S,这意味着您的段落会偏离屏幕边缘,使其难以阅读。
在一个80列的终端上,如果我们在左边减去4列用于缩进,在右边减去4列以对称,则剩下72列。git format-patch --stdout使用消息正文的消息将一系列提交转换为一系列电子邮件。
好的电子邮件礼仪要求我们包装纯文本电子邮件,以便在80列终端中留出几层嵌套的回复指示器而不会溢出。
如这里所说:
通常,使用编辑器来创建提交消息,而不是在命令行中传递它们。格式应为:
- 72个字符的硬包装
- 提交的简短摘要
- 后面跟一个空白行
- 其次是支持细节
所有资源(包括GitPro书,第一行用50个字符表示,如JörgW Mittag的评论)都坚持有必要对评论进行自我包装,这当然是因为即使Git能够处理较长的行,其他工具也是如此。处理链(电子邮件,补丁程序...)可能不会。
[PATCH]或此类标记。
或者您可以更改您的寻呼机以使用 less -R
$ git config --global core.pager 'less -R'
这将减少停止尝试控制屏幕格式的尝试(通常,在git log使用箭头键时可以左右滚动)。而且,正如不太那么手册上所说的那样,“因此,可能会导致各种显示问题,例如长行在错误的位置被分割。” 这就是您想要的,您希望行的结尾出现在屏幕的右侧(错误的位置),而不是注释作者放置在屏幕上的位置。
还要注意,在不修改寻呼机的情况下按向右箭头键,将使您看到更多代码。这是我的首选方法。
~/.gitconfig文件并删除[core] pager = ...零件
less -r为我工作,less -R但不起作用(ubuntu 14.04)
在前面的答案中提到的是,默认的寻呼机(通常为“少”)负责换行,并且默认情况下通常将长行斩断。
要在不更改提交消息的情况下进行修改(较少和bash示例):
$ echo $LESS
-FRSX
这是我默认情况下要覆盖LESS环境变量的内容。
echo "LESS=-FRX;export LESS" >> ~/.bash_profile
source ~/.bash_profile
如VonC所述,您可能希望将提交消息包装为72个字符,并用一块石头杀死许多鸟。这个git钩子自动包装您的提交消息并与任何编辑器一起使用:https : //github.com/surabhigupta/AutoWrapSeventyTwo
对于那些仍在寻找答案的人,这就是我解决的打包git日志消息的方法:
git log --pretty=format:"@%H,%cn,%cD,%B" <file name> | tr "\n" " "|tr "@" "\n"
git log命令的输出通过管道传递,以查找换行符并替换为空格。这是用于将提交消息单行加入的逻辑。
在这里,我使用“ @”作为分隔符来区分提交。您可以将其替换为所需的任何特殊符号。“%H”代表提交哈希,“%cn”代表提交者名称,“%cD”代表提交日期,“%B”原始消息。如果您想了解有关pretty = format的更多信息,请查看https://git-scm.com/docs/pretty-formats
请注意,如果您在git commit消息中包含换行符,则此方法可能无效。
答案很简单:
键入-S然后Enter查看日志git的时候。
详细的答案:
git log使用less文本查看器输出,因此只需键入-S然后Enter在“切成长行”和“折叠长行”的两种换行模式之间切换即可。“折叠长行”选项启用自动换行。
帮助我了解这一点的资源:https : //superuser.com/a/272826/425838