7

有时一个git checkout命令会给出进度反馈:

$ git checkout develop
Checking out files: 100% (10779/10779), done.
Switched to branch 'develop'

有时它不会,(下一个命令行,相同的 repo 上下文):

$ git checkout master
Switched to branch 'master'

这不是因为分支相等,因为切换回下一个命令会显示以下反馈:

$ git checkout develop
Checking out files: 47% (5067/10779), done.
Switched to branch 'develop'

这也发生在小型回购中。我有一个只有 13 个文件的存储库,当我在分支中添加一个文件并使用 checkout 来回切换时,我没有得到任何反馈。是某种“这需要很长时间,开始显示反馈”的计时器吗?

我搜索了(谷歌,Stackoverflow),但没有找到任何具体的东西。我确实找到了一些补丁文档,其中显示了在 checkout 中添加了一个 --verbose 标志,该标志强制反馈总是发生,但我找不到解释为什么反馈有时在没有该补丁的情况下才会发生。相同的注释指出,只有当 isatty() 返回 true 时才会发生反馈,但这在这里不相关,因为上面的所有命令都输入到同一个 bash 窗口中,这可能是 isatty。

我正在使用 git version 1.8.1.msysgit.1(从 gi​​t-scm.com 下载为 1.8.1.3),据我所知,它没有 --verbose 补丁。

4

2 回答 2

4

此结帐输出现在应该与 Git 2.7(2015 年 11 月/12 月)更加一致

请参阅Edmundo Carmona Antoranz ( )的提交 870ebdb(2015 年 11 月 1 日) 。(由Junio C Hamano 合并——提交 6a38bd6中,2015 年 11 月 5 日)eantoranz
gitster

" git checkout" 没有遵循通常的 " --[no-]progress" 约定,只实现了 " --quiet" 本质上是 " --no-progress" 的超集。
扩展命令以支持通常的“ --[no-]progress”。

git checkout文档现在显示:

--[no-]progress::

--quiet除非指定,否则在附加到终端时,默认情况下会在标准错误流上报告进度状态。
即使没有附加到终端,此标志也启用进度报告,无论--quiet.

checkout: 添加--progress选项

在正常情况下,和其他 git 命令一样,git checkout如果附加到终端,会将进度信息写入 stderr。
即使不使用终端,此选项也允许强制进度
此外,如果使用 option ,则可以跳过进度--no-progress

于 2015-11-08T10:18:41.277 回答
2

在正常情况下,当检查操作是否运行超过一秒时,您将看到输出。

于 2017-01-12T21:22:43.893 回答