假设我一直在处理一个分支并提交了我的工作,但想在日志中添加一条消息,说明该分支的待办事项列表中的下一步是什么。我可能想要这样做的时间包括:
- 切换分支以从事其他工作 - 需要提醒自己下一步该做什么
- 周末
- 其他
是否可以在不提交任何文件的情况下提交到 git?任何其他的说法:是否可以只向 GIT 提交一条消息?
假设我一直在处理一个分支并提交了我的工作,但想在日志中添加一条消息,说明该分支的待办事项列表中的下一步是什么。我可能想要这样做的时间包括:
是否可以在不提交任何文件的情况下提交到 git?任何其他的说法:是否可以只向 GIT 提交一条消息?
是的。有可能的。我永远不记得如何做到这一点,总是需要谷歌(所以我正在写一个问答,希望这能帮助我记住)。
命令是:
git commit --allow-empty --only
文档为--allow-empty
:
通常记录与其唯一父提交具有完全相同的树的提交是错误的,并且该命令会阻止您进行此类提交。此选项绕过安全性,主要供外部 SCM 接口脚本使用。
Doc 是有道理的,但不容易搜索。
您也可以考虑使用带注释的标签。然后,您可以稍后删除标签,而无需重写历史记录。对我来说,这比在你的历史中添加空提交更有意义。
git tag -a TODO-feature-foo -m "next I'm going to..."
git push origin :TODO-feature-foo
一旦不再需要:
git push origin :TODO-feature-foo
注意:如果您已暂存更改,但想创建一个只有一条消息的空提交,那么您需要(使用 Git 2.12,2017 年第一季度):
git commit --only --allow-empty -m "my message"
带有脏索引的“ git commit --allow-empty --only
”(无路径规范)应该是一种可接受的方式来创建不更改任何路径的新提交,但它被禁止,也许是因为到目前为止没有人需要它。
请参阅Andreas Krey ( ) 的提交beb635c ( 2016 年 12 月 9 日)和提交 319d835(2016 年 12 月 2 日)。(由Junio C Hamano 合并——在提交 3aead1c中,2016 年 12 月 19 日)apk
gitster
commit
: 使--only --allow-empty
工作没有路径签字人:Andreas Krey
审核人:Jeff King
--only
存在路径时是隐含的,除非--amend
.
但是--allow-empty
,它也应该被允许:这是在存在阶段性更改的情况下创建空提交的唯一方法。