4

Git を使用してバックアップ システムを作成しています。

ディレクトリを作成し、その上で git を初期化しました。

git init

追跡されていないファイルをステージに追加しようとしたとき

git add -u *.pdf

次の応答エラーが表示されます。

sh.exe": /bin/git: 不正なファイル番号

追加情報として、約 4500 個の追跡されていないファイルのリストがあり、ファイルを 1 つずつ追加しようとすると、エラー応答が返されず、ファイルがステージに送信されます。

この問題を解決する方法と、なぜそれが起こるのか知っている人はいますか? これらの追跡されていないファイルをすべて追加する必要がありますが、1つずつ追加する「猿の仕事」の方法でそれを行いたくありません。

4

1 に答える 1

6

すでに追跡しているファイルのみを追加するため、「-u」は必要ありません。その後、git initまだ何も追跡していません。ドキュメントから:

-u, --update: 作業ツリーではなく、インデックス内の既に追跡されているファイルに対してのみ一致します。つまり、新しいファイルをステージングすることはありませんが、追跡されたファイルの変更された新しいコンテンツをステージングし、作業ツリー内の対応するファイルが削除されている場合はインデックスからファイルを削除します。

代わりに-A(または) を使用してください。--all

特定の問題について、「*.pdf」と書き込むと、シェルはそれを 4500 個のファイルに展開します。この多数のファイルは、シェル コマンド ラインの入力バッファをオーバーフローさせる可能性があります。これはエラーにつながります。あなたはいくつかのことをすることができます:

git add -A               # adds everything at once

また

for file in *.pdf; do git add -A $file; done    # add files one by one

これらの提案は両方とも、コマンド ラインの問題を回避します。最初のものが優先されます。

于 2013-03-24T02:31:56.733 に答える