34

假设我一直在处理一个分支并提交了我的工作,但想在日志中添加一条消息,说明该分支的待办事项列表中的下一步是什么。我可能想要这样做的时间包括:

  • 切换分支以从事其他工作 - 需要提醒自己下一步该做什么
  • 周末
  • 其他

是否可以在不提交任何文件的情况下提交到 git?任何其他的说法:是否可以只向 GIT 提交一条消息?

4

3 回答 3

47

是的。有可能的。我永远不记得如何做到这一点,总是需要谷歌(所以我正在写一个问答,希望这能帮助我记住)。

命令是:

git commit --allow-empty --only

文档为--allow-empty

通常记录与其唯一父提交具有完全相同的树的提交是错误的,并且该命令会阻止您进行此类提交。此选项绕过安全性,主要供外部 SCM 接口脚本使用。

Doc 是有道理的,但不容易搜索。

于 2013-09-18T17:57:55.970 回答
12

您也可以考虑使用带注释的标签。然后,您可以稍后删除标签,而无需重写历史记录。对我来说,这比在你的历史中添加空提交更有意义。

git tag -a TODO-feature-foo -m "next I'm going to..."
git push origin :TODO-feature-foo

一旦不再需要:

git push origin :TODO-feature-foo
于 2013-09-18T18:15:12.467 回答
10

注意:如果您已暂存更改,但想创建一个只有一条消息的空提交,那么您需要(使用 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,它也应该被允许:这是在存在阶段性更改的情况下创建空提交的唯一方法。

于 2016-12-28T11:26:37.313 回答