如何在不指定提交消息的情况下提交更改?为什么默认需要?
答案 0 :(得分:118)
git通常需要非空消息,因为提供有意义的提交消息是良好的开发实践和良好的存储库管理的一部分。提交消息的第一行在git中的所有位置使用;更多信息,请阅读"A Note About Git Commit Messages"。
如果打开Terminal.app,cd
到项目目录,git commit -am ''
,您将看到它失败,因为不允许空提交消息。较新版本的git有
--allow-empty-message
命令行参数,包括最新版Xcode中包含的git版本。这将允许您使用此命令进行带有空消息的提交:
git commit -a --allow-empty-message -m ''
在--allow-empty-message
标志之前,您必须使用commit-tree
管道命令。您可以在the "Raw Git" chapter的the Git book中看到使用此命令的示例。
答案 1 :(得分:22)
如果你为它添加一个别名,那么它会更好吗?
git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'
现在你只是做一个nccommit,nc因为没有评论,所有内容都应该被提交。
答案 2 :(得分:16)
在处理重要的代码更新时,如果您真的需要一个中间安全点,您可能会这样做:
git commit -am'.'
或更短:
git commit -am.
答案 3 :(得分:10)
注意:starting git1.8.3.2(2013年7月),以下命令(mentioned above Jeremy W Sherman)将不再打开编辑器:
git commit --allow-empty-message -m ''
请参阅commit 25206778aac776fc6cc4887653fdae476c7a9b5a:
如果使用git commit的选项
-m
指定了空消息,则启动编辑器 这是出乎意料的,没必要的 而不是使用消息字符串的长度来检查用户是否指定了一个,直接记住是否给出了选项-m
。
git 2.9(2016年6月)改进了空消息行为:
commit 178e814见Adam Dinwoodie (me-and
)(2016年4月6日)
请commit 27014cb查看Jeff King (peff
)(2016年4月7日)
(Junio C Hamano -- gitster
--于2016年4月22日commit 0709261合并)
给出的空消息
commit
:不要忽略-m ''
- “
git commit --amend -m '' --allow-empty-message
”,即使它看起来很奇怪,也是一个有效的请求来修改提交,根本没有消息。
由于命令行上存在-m
的错误检测,我们最终保留了原始提交中的日志消息。- “
git commit -m "$msg" -F file
”应该被拒绝,$msg
是否为空字符串,但由于相同的错误,$msg
为空时不会被拒绝。- “
git -c template=file -m "$msg"
”应该忽略该模板,即使$msg
为空,但它没有,而是使用模板文件中的内容。
答案 4 :(得分:2)
你不需要git来实现这一目标。创造性地使用bash函数就可以了。如果您不关心消息,只需设置一个默认消息即可。
function gitcom() {
git commit -m "my default commit message"
}
如果你真的有冒险精神,你可以添加,提交和推送一个命令
function gitzap() {
git add . && git commit -m "whatevs" && git push $1 $2
}
然后您将以
的身份运行gitzap origin master
你甚至可以更深入地使用parse_git_branch来保存自己的一些击键,或设置一个常见的默认值" origin"和"掌握"。
答案 5 :(得分:1)
Git需要提交注释,否则它不会接受提交。
您可以使用git配置默认模板作为默认提交消息,也可以在git中查找--allow-empty-message标志。我认为(不是100%肯定)你可以重新配置git来接受空提交消息(这不是一个好主意)。通常,每次提交都应该是您的消息所描述的一些工作。
答案 6 :(得分:1)
我找到了最简单的解决方案:
git commit -am'save'
总而言之,你将解决git commit message的问题。
你甚至可以将这个表达保存到bash或其他东西上,以使其更简单。
我们的团队成员总是写下这些消息,但几乎没有人会再次看到这些消息。
至少在我们的团队中,提交消息是时间杀戮的东西,所以我们忽略它。
答案 7 :(得分:1)
--allow-empty-message -m ''
(和-m ""
)在PowerShell上的Git 2.29.2中失败:
错误:开关“ m”需要一个值
(奇怪的是,一侧有反引号,另一侧有单引号)
以下内容在Linux,PowerShell和命令提示符中始终有效:
git commit --allow-empty-message --no-edit
--no-edit
位可以解决问题,因为它会阻止编辑器启动。
与强制使用-m ''
来发送空消息相比,我发现此表单更明确,也更没有恶意。
答案 8 :(得分:0)
我的私人项目中具有以下配置:
git config alias.auto 'commit -a -m "changes made from [device name]"'
那样,当我赶时间时我会做
git auto
git push
至少我知道提交的设备。
答案 9 :(得分:-4)
提交消息是应始终遵循的最佳做法。除非你是唯一的开发人员,否则不会很快改变。
git commit -a -m 'asdfasdfadsfsdf'