git commit --cleanup=whitespace 到底做了什么?

问题描述 投票:0回答:2

“git commit --cleanup=whitespace”有什么作用?我正在尝试测试它,但我无法弄清楚预期的行为是什么(并且它的 git 文档只有一行)。 如果我添加它,并且有人提取我的代码,他们会收到中间有零空白行的源代码吗?

git whitespace
2个回答
5
投票

不,它只是用于您的提交消息,而不是您的源代码。

default
模式正在清理注释(以#开头的行)以及开头和结尾的空行。
whitespace
模式保留评论。


4
投票

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
)
帮助者:Junio C Hamano (
gitster
)
.
(由 Junio C Hamano --
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

帮助者:Phillip Wood (
phillipwood
)
.
请参阅 Phillip Wood (phillipwood)
commit dc42e9a
(2019 年 4 月 17 日)。
帮助者:Phillip Wood (
phillipwood
)
.
(由 Junio C Hamano --
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 e90cc07commit 688a0a7(2024 年 2 月 27 日),作者:Josh Triplett (

joshtriplett
)
(由 Junio C Hamano --
gitster
--
合并于 commit 798ddfc,2024 年 3 月 7 日)

commit
:使用 --cleanup=scissors -v

避免多余的剪刀线

签署人:Josh Triplett

git commit --cleanup=scissors -v
(man) 打印两条剪刀线:一条位于注释行的开头,另一条位于差异之前。
这是多余的,并且会将差异在用户编辑器中进一步向下推,而不是需要的。

wt_status_add_cut_line()
记住之前是否添加过切割线,避免添加多余的线。

© www.soinside.com 2019 - 2024. All rights reserved.