Git 如何抑制;“提交”时未暂存更改;?

Git 如何抑制;“提交”时未暂存更改;?,git,commit,git-commit,Git,Commit,Git Commit,提交时,如何抑制“未提交的更改”输出?请注意: 我知道我可以做/dev/null,但我不希望压制其他事情 我不是说提交消息——我是说它打印到终端上的内容 在对代码库进行了一些挖掘之后,恐怕您应该设计一种方法来忽略脚本中的这些行 在提交过程中,如果不使用--allow empty,git将执行以下操作: 而run\u status执行以下操作: switch (status_format) { case STATUS_FORMAT_SHORT: wt_shortstatu

提交时,如何抑制“未提交的更改”输出?请注意:

  • 我知道我可以做
    /dev/null
    ,但我不希望压制其他事情
  • 我不是说提交消息——我是说它打印到终端上的内容

在对代码库进行了一些挖掘之后,恐怕您应该设计一种方法来忽略脚本中的这些行

在提交过程中,如果不使用
--allow empty
,git将执行以下操作:

run\u status
执行以下操作:

switch (status_format) {
    case STATUS_FORMAT_SHORT:
        wt_shortstatus_print(s);
        break;
    case STATUS_FORMAT_PORCELAIN:
        wt_porcelain_print(s);
        break;
    case STATUS_FORMAT_UNSPECIFIED:
        die("BUG: finalize_deferred_config() should have been called");
        break;
    case STATUS_FORMAT_NONE:
    case STATUS_FORMAT_LONG:
        wt_status_print(s);
        break;
    }
}
STATUS\u FORMAT\u ceral
(使用
--ceral
)和
STATUS\u FORMAT\u SHORT
git config STATUS.SHORT true
)将产生相同的缩小输出:

 M bla.txt
STATUS\u FORMAT\u LONG
(和
STATUS\u FORMAT\u NONE
,不确定原因?)将产生通常的输出:

Changes not staged for commit:
    modified:   bla.txt
也就是说,让我们不要绝望,这是我们谈论的软件,总有办法解决这个问题(尽管我仍然需要完全测试;)


您可以使用
--allow empty
来通过该代码分支并创建一个空提交。然后,用一个
post-commit
钩子来检查最近的提交是否为空,如果为空,钩子将运行
git-reset--hard-HEAD~1
,您就可以开始了?

您正在询问显示的默认提交消息?何必麻烦呢?它只是有关已更改但未包含在提交中的文件的信息。当您准备从给定的已更改工作树进行一系列提交时,它非常有用。请查看REPO/.git/hooks/prepare-commit-msg.sample,其中有一个示例显示了如何注释掉可调整的“冲突”部分。这让人困惑。输出是什么?你能给我们举个例子吗?除了默认提交消息中注释掉的消息(如果通过编辑器输入提交消息)。。。我唯一能想到的另一个问题是处于
git状态
,这是一个完全不同的问题?@ddr2:很抱歉,这让人困惑,我在尝试提交时遇到了它,但没有添加任何文件。(这是剧本的一部分,显然不是我亲手做的。)
Changes not staged for commit:
    modified:   bla.txt