7

git checkoutコマンドが進行状況をフィードバックする場合があります。

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

そうでない場合もあります(次のコマンドライン、同じリポジトリコンテキスト):

$ git checkout master
Switched to branch 'master'

ブランチが等しいからではありません。次のコマンドに戻ると、次のフィードバックが表示されるためです。

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

これは、小さなリポジトリでも発生します。13 個のファイルしかないリポジトリがあり、ブランチにファイルを追加し、チェックアウトを使用して前後に切り替えると、どちらの方法でもフィードバックが得られません。「これには時間がかかります。フィードバックの表示を開始してください」タイマーのようなものですか?

検索 (Google、Stackoverflow) しましたが、具体的なものは見つかりませんでした。チェックアウトに --verbose フラグを追加してフィードバックを常に発生させることを示すパッチ ドキュメントを見つけましたが、そのパッチがないとフィードバックが時々しか発生しない理由の説明を見つけることができませんでした。isatty() が true を返す場合にのみフィードバックが発生することを同じメモが指摘しましたが、上記のコマンドはすべて同じ bash ウィンドウ (おそらく isatty) に入力されたため、ここでは関係ありません。

version 1.8.1.msysgit.1私が知る限り、 --verbose パッチがないgit (git-scm.com から 1.8.1.3 としてダウンロード) を使用しています。

4

2 に答える 2

4

このチェックアウト出力は、Git 2.7 とより一貫性を持つようになりました (2015 年 11 月/12 月)

Edmundo Carmona Antoranz ( )によるcommit 870ebdb (2015 年 11 月 1 日)を参照してください。( 2015 年 11 月 5 日コミット 6a38bd6Junio C Hamanoによってマージされました)eantoranz
gitster

" git checkout" は通常の規則に従わず、本質的に " " のスーパーセットである " "--[no-]progressのみを実装しました。 コマンドを拡張して、通常の " " をサポートします。--quiet--no-progress
--[no-]progress

git checkoutドキュメントには次のように表示されます。

--[no-]progress::

進行状況は、指定されていない限り、端末に接続されている場合、既定で標準エラー ストリームで報告され--quietます。
このフラグは、ターミナルに接続されていなくても、 に関係なく進捗レポートを有効にし--quietます。

checkout:--progressオプションを追加

通常の状況では、他の git コマンドと同様git checkoutに、端末に接続されている場合、進捗情報を stderr に書き込みます。
このオプションを使用すると、端末を使用していない場合でも進行を強制できます
また、オプションを使用すると進行をスキップできます--no-progress

于 2015-11-08T10:18:41.277 に答える