我怎样可以提交更改而无需指定提交信息?为什么默认情况下需要这样做?
通常情况下,git需要提交非空的消息,因为提供有意义的提交消息是良好开发实践和仓库管理的一部分。提交消息的第一行在git中被广泛使用;更多信息请查阅"关于Git提交消息的注意事项"。
如果你打开Terminal.app,cd
到你的项目目录,并执行git commit -am ''
,你将会看到它失败了,因为不允许提交一个空的提交消息。新版本的git具有--allow-empty-message
命令行参数,包括最新版的Xcode附带的git版本。这将允许你使用此命令提交一个空的提交消息:
git commit -a --allow-empty-message -m ''
在使用--allow-empty-message
标志之前,您必须使用commit-tree
命令。在Git书籍的"Raw Git"章节中可以看到使用此命令的示例。
git diff
将向感兴趣的方 展示提交包含的确切内容,而不依赖于人工编写的描述。机器应该在可能的情况下为我们节省劳动。 - Armen Michaeligit diff
命令的输出结果已经很清楚明了,但实际上并不容易理解。请问您需要翻译其他内容吗? - cowlinator如果你为它添加别名,那么它会变得更好,对吧?
git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'
现在你只需要执行nccommit,nc代表无注释,一切都应该被提交。
... -m“”'
。 - scotscotmcc当你在进行重要的代码更新时,如果你真的需要一个中间检查点,你可以这样做:
git commit -am'.'
更短:
git commit -am.
这将添加一条带有消息.
的提交。
-m.
很好用!我使用它在我的 wip
分支上创建临时提交,最后通过创建真正的提交消息,使用 --squash
将该 wip
分支合并。 - Tharindu Sathischandra注意: 自git1.8.3.2版本开始 (2013年7月),以下命令(上文提到由Jeremy W Sherman提出)将不再打开编辑器:
git commit --allow-empty-message -m ''
查看commit 25206778aac776fc6cc4887653fdae476c7a9b5a:
如果使用git commit的选项
-m
指定了空消息,则会启动编辑器。
这是意外和不必要的。
不要使用消息字符串的长度来检查用户是否指定了消息,而是直接记住是否给出了-m
选项。
git 2.9(2016年6月)改进了空消息的行为:
查看 commit 178e814 (2016年4月6日) 由 Adam Dinwoodie (me-and
) 提交。
查看 commit 27014cb (2016年4月7日) 由 Jeff King (peff
) 提交。
(由 Junio C Hamano -- gitster
-- 在 commit 0709261 中合并,日期为2016年4月22日)
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
为空,也应该忽略模板,但它没有这样做,而是使用了模板文件中的内容。--allow-empty-message -m ''
(和 -m ""
)在 PowerShell 上的 Git 2.29.2 版本中失败:
错误:开关“m”需要一个值
(奇怪的是,一边是反引号,另一边是单引号)
以下内容在 Linux、PowerShell 和命令提示符中均能正常工作:
git commit --allow-empty-message --no-edit
--no-edit
参数可以实现不启动编辑器的效果。-m ''
强制发送一个空消息略微好一些。-m ""
。 - VonC--no-edit
的原因。 - Daniel LiuzziGit要求每个提交都必须有注释,否则它将不接受该提交。
您可以使用git配置默认模板作为默认提交消息,或者在git中查找--allow-empty-message标志。我认为(不是100%确定),您可以重新配置git以接受空提交消息(这不是一个好主意)。通常,每个提交应该是一点工作,由您的消息描述。
function gitcom() {
git commit -m "my default commit message"
}
function gitzap() {
git add . && git commit -m "whatevs" && git push $1 $2
}
然后你将运行以下命令:
gitzap origin master
alias ea="subl ~/.profile" # subl是我的文本编辑器,请用您自己的替换
alias er="source ~/.profile" # 这将重置
现在,当您想要添加快捷方式时,只需键入“ea”(编辑别名)
要刷新,请键入“er”。 - Steven Garciagit-com
和 git-zap
(没有扩展名),并将它们放在 git 可以找到的地方(即在你的 PATH 中的某个位置),git 就会像处理常规 git 命令一样处理它们,你可以这样调用它们:git com
,git zap origin master
。 - Manuzorfunction gitcom {
或gitcom() {
。据我所知,需要修复吗? - user5047085git commit -am'save'
这就是全部了,你需要处理 git 提交信息的相关事情。
你甚至可以将这个命令保存到bash或其他地方,以使它更加简单。
我们团队成员总是写这些消息,但几乎没有人会再次看到这些消息。
在我们团队中,提交消息是一件浪费时间的事情,所以我们忽略它。
我在我的私人项目中有以下配置:
git config alias.auto 'commit -a -m "changes made from [device name]"'
git auto
git push
在其他答案的基础上,我提出了以下内容:
git config --global alias.gromit '!git add --all && git commit --allow-empty-message -m ""'
这与dalvarezmartinez1的答案不同,git add --all
还会添加新文件,而git commit
中的-a
标志则不会。此外,我认为这个别名更适合该命令。:-)
未来的自己,请原谅我即将进行的所有沉默、快速、伟大的提交。
git commit -a --allow-empty-message -m ''
不再打开编辑器了。请参见我的答案。 - VonCgit commit -a --allow-empty-message -m ''
可以提交一个空信息的提交记录(commit),因此最好改用这个命令:git commit -a --allow-empty-message -m ""
。新命令的作用与旧命令相同,只是将两个单引号替换为两个双引号。 - tav