如何只向GIT提交消息?

six*_*ude 24 git

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

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

是否可以在不提交任何文件的情况下提交git?这样说的另一种方式:是否可以只向GIT提交一条消息?

six*_*ude 33

是.有可能的.我永远不会记得如何做到这一点,并始终需要谷歌(所以我写了一个Q/A,希望这将有助于我记住).

命令是:

git commit --allow-empty
Run Code Online (Sandbox Code Playgroud)

--allow-empty阅读文档:

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

Doc很有意义,但不容易搜索.

  • 我使用--allow-empty相当多,通常当我创建一个新的分支来解释为什么创建分支时. (4认同)

Joh*_*ter 9

您也可以考虑使用带注释的标签.然后,您可以在不必重写历史记录的情况下删除该标记.对我来说,这比在历史记录中添加空提交更有意义.

git tag -a TODO-feature-foo -m "next I'm going to..."
git push origin :TODO-feature-foo
Run Code Online (Sandbox Code Playgroud)

一旦不再需要:

git push origin :TODO-feature-foo
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 8

注意:如果您已暂存更改,但想要创建仅包含一条消息的空提交,那么您需要(使用 Git 2.12,2017 年第一季度):

git commit --only --allow-empty -m "my message"
Run Code Online (Sandbox Code Playgroud)

git commit --allow-empty --only带有脏索引的“ ”(无路径规范)应该是创建不更改任何路径的新提交的可接受方式,但它被禁止,可能是因为到目前为止没有人需要它。

看看提交beb635c(2016年12月9日),以及提交319d835(2016年12月2日)由安德烈亚斯Krey( )apk
(由Junio C gitsterHamano合并-- --commit 3aead1c,2016 年 12 月 19 日)

commit: 让--only --allow-empty工作没有路径

签字人:Andreas Krey
评论人:Jeff King

--only当路径存在时是隐含的,除非--amend.
但是使用--allow-empty,它也应该被允许:这是在存在分阶段更改的情况下创建空提交的唯一方法。