git commit --cleanup=whitespace 究竟是做了什么?

7
“git commit --cleanup=whitespace” 是什么意思?我正在尝试测试它,但是无法弄清预期的行为(它在 git 文档中只有一行)。 如果我使用它,然后有人拉取我的代码,他们会收到中间没有空白行的源代码吗?

基于“空格”,您很快将拥有“剪刀”清理模式。请参见下面的我的回答 - VonC
2个回答

5

不是针对你的源代码,而是针对你的提交消息。

default 模式用于清除注释(以 # 开头的行)和前导和尾随的空行。 whitespace 模式保留注释。


哦。在Git中处理源代码中的空格有什么最佳方法?只是确保每个开发人员手动处理,还是Git提供了一些辅助工具? - darksky
您可以在构建链中使用格式化程序来处理它。您可以依赖Git处理某些事情,请参阅Pro Git中的格式和空格http://git-scm.com/book/ch7-1.html。 - cexbrayat

4

Git 1.9.x/2.0 (Q2 2014)将会有另一种空格的替代方案:清理模式“scissors”。

它是由Nguyễn Thái Ngọc Duy (pclouds引入的提交 75df1f4,以及新的git commit --cleanup文档

scissors

whitespace相同,只是包括(并且包括)该行的所有内容。
# ------------------------ >8 ------------------------

如果要编辑消息,则会截断。
可以使用core.commentChar自定义"#"。因此,您仍然可以保留注释,并删除预定义行后的所有内容。

2015年7月更新 Git 2.5:现在这个剪刀更加健壮。

请参见提交 fbfa097(由SZEDER Gábor (szeder)于2015年6月9日完成)。
帮助者:Junio C Hamano (gitster)
(由Junio C Hamano -- gitster --合并于提交07528be,2015年6月24日)

"git commit --cleanup=scissors" 不够小心,无法保护免受看起来像剪刀的行的欺骗。


2019年5月更新,适用于即将发布的Git 2.22(2019年第二季度):
当清理模式设置为“scissors”时,在解决冲突合并时编辑器中显示的冲突路径列表位于剪刀线上方,尽管它与更新路径列表和其他信息一样被注释以帮助用户更好地解释合并。

请查看由Denton Liu (Denton-L)于2019年4月17日提交的提交1a2b985, 提交1055997, 提交d540b70, 提交ca04dc9, 提交f29cd86, 提交94ca361, 提交b720e1e, 提交5caab8d, 提交b510f0b,并得到Phillip Wood (phillipwood)的帮助。
请查看由Phillip Wood (phillipwood)于2019年4月17日提交的提交dc42e9a,并得到Phillip Wood (phillipwood)的帮助。
(在提交b877cb4中由Junio C Hamano -- gitster --合并)

cherry-pick/revert: 在合并冲突中添加剪刀线

修复一个错误,即在出现合并冲突且 commit.cleanup = scissors 的情况下,剪刀线被放置在 Conflicts: 部分之后。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接