假设我已经在一个分支上工作并提交了我的工作,但想要在分支的日志中添加一条消息,说明下一步的待办事项。 我可能会这样做的时间包括:
- 切换到其他分支进行工作 - 需要提醒自己接下来要做什么
- 周末
- 其它
是否可以在不提交任何文件的情况下提交git?另一种表述方式:是否可以仅向GIT提交一条消息?
假设我已经在一个分支上工作并提交了我的工作,但想要在分支的日志中添加一条消息,说明下一步的待办事项。 我可能会这样做的时间包括:
是否可以在不提交任何文件的情况下提交git?另一种表述方式:是否可以仅向GIT提交一条消息?
可以。这是可能的。我经常忘记如何做,总是需要谷歌一下(所以我写了一个问答希望能帮助我记住)。
命令是:
git commit --allow-empty --only
--allow-empty
的文档如下:
通常记录与其唯一父提交具有完全相同树的提交是一个错误,该命令会阻止您进行此类提交。此选项绕过了安全性,并主要供外部SCM接口脚本使用。
文档有意义但不易搜索。
git commit --help
的选项列表中。我总是记不住这个选项,所以我总是需要回到这里去找它。大概有 30% 的 140 次页面浏览是我自己的。 - sixtyfootersdude你也可以考虑使用带有注释的标签。这样,你就可以在不必重写历史记录的情况下随时删除标签。对我来说,这比向历史记录添加空提交更有意义。
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,Q1 2017):
Note: 如果您已经"staged"了更改,但希望创建只包含消息的空提交,则需要(使用Git 2.12,Q1 2017):git commit --only --allow-empty -m "my message"
"git commit --allow-empty --only
" (no pathspec)可以创建一个不更改任何路径的新提交,但由于迄今为止没有人需要它,所以它被禁止了。
请参见beb635c 提交(2016年12月9日)和319d835 提交(2016年12月2日),作者是Andreas Krey (apk
)。
(由 Junio C Hamano -- gitster
--在commit 3aead1c中合并)
commit
:使--only --allow-empty
在没有路径的情况下工作签名作者:Andreas Krey
审核者:Jeff King
--only
在路径存在时被暗示,并且除非使用--amend
,否则需要它。
但是,对于--allow-empty
,也应该允许它:这是在存在已暂存更改的情况下创建空提交的唯一方法。
git help notes
。 - chepnergit notes
的设计目的 - 可以使用空提交和/或标签(带注释或不带注释)来完成,但这不是这些功能的本意... - twalberg