“git commit --cleanup=whitespace”有什么作用?我正在尝试测试它,但我无法弄清楚预期的行为是什么(并且它的 git 文档只有一行)。 如果我添加它,并且有人提取我的代码,他们会收到中间有零空白行的源代码吗?
不,它只是用于您的提交消息,而不是您的源代码。
default
模式正在清理注释(以#开头的行)以及开头和结尾的空行。 whitespace
模式保留评论。
Git 1.9.x/2.0(2014 年第 2 季度)将有另一种空白替代方案:清理模式“
scissors
”。
它是由 Nguyễn Thái Ngọc Duy (pclouds
)
和新的
git commit --cleanup
文档引入的commit 75df1f4:
scissors
与
相同,除了来自(并包括)该行的所有内容whitespace
# ------------------------ >8 ------------------------
如果要编辑消息,则会被截断。
“”可以通过#
自定义。core.commentChar
因此您仍然可以保留评论,并删除特定预定义行之后的所有内容。
2015 年 7 月更新 Git 2.5:这把剪刀现在更强大了。
请参阅提交 fbfa097(2015 年 6 月 9 日),作者:SZEDER Gábor (
szeder
)。gitster
).gitster
-- 合并于 commit 07528be,2015 年 6 月 24 日)
“
”保护不够仔细 不要被看起来像剪刀的线所欺骗。git commit --cleanup=scissors
2019 年 5 月更新,即将发布的 Git 2.22(2019 年第 2 季度):
结束时编辑器中显示的冲突路径列表
当合并冲突时显示在剪刀线上方
清理模式设置为“剪刀”,尽管已注释
就像更新路径和其他信息的列表一样
帮助用户更好地解释合并。
参见 提交 1a2b985、提交 1055997、提交 d540b70、提交 ca04dc9、提交 f29cd86、提交 94ca361、提交 b720e1e ,提交 5caab8d,提交 b510f0b(2019 年 4 月 17 日) )由刘丹顿(
Denton-L
)。phillipwood
).phillipwood
)的commit dc42e9a(2019 年 4 月 17 日)。
phillipwood
).gitster
-- 合并于 commit b877cb4,2019 年 5 月 8 日)
:在合并冲突时添加剪刀线cherry-pick/revert
修复了剪刀线放置在
部分之后的错误,在发生合并冲突和Conflicts:
的情况下。commit.cleanup = scissors
git commit -v --cleanup=scissors
"(man) 用于在日志消息缓冲区中添加剪刀线两次,已使用 Git 2.45 (Q2 2024) batch 5 进行更正。
请参阅commit e90cc07、commit 688a0a7(2024 年 2 月 27 日),作者:Josh Triplett (
joshtriplett
)。gitster
-- 合并于 commit 798ddfc,2024 年 3 月 7 日)
避免多余的剪刀线
:使用 --cleanup=scissors -vcommit
签署人:Josh Triplett
(man) 打印两条剪刀线:一条位于注释行的开头,另一条位于差异之前。git commit --cleanup=scissors -v
这是多余的,并且会将差异在用户编辑器中进一步向下推,而不是需要的。让
记住之前是否添加过切割线,避免添加多余的线。wt_status_add_cut_line()