58

中にいくつかの.screenファイルが/xxx/documentationあり、そのサブディレクトリはすでにGitによって追跡されています。

これらの画面ファイルの多くを変更した後、ドキュメントgit add documentation/\\*.screenの最初の例で示されているように、git-addこれらのファイルをステージングするために実行しますが、コマンドは失敗します。

致命的:pathspec'documentation /\*。screen'はどのファイルとも一致しませんでした

私のコマンドは悪いですか、それともgitにバグがありますか?

4

6 に答える 6

60

これはドキュメントのバグです。アスタリスクを引用する

$git追加ドキュメント/\*.screen

また

$ git add'documentation/*。screen'

あなたが望む振る舞いを得るために。

代わりに、現在のディレクトリにのみファイルを追加する場合は、

$ git add * .screen

更新:問題を修正するパッチを提出しました。バージョン1.6.6.2で修正されました。

于 2010-02-08T16:18:23.343 に答える
17

受け入れられた答えを試しましたが、うまくいきませんでした。問題を引き起こす可能性のあるさまざまな側面を分析することに時間を費やすことなく、誰かが仕事をやり遂げたい場合に備えて、ここに私のものがあります。

find documentation -name "*.screen" | xargs git add -u

// git-addの-uオプションは、以前に追跡および変更されたファイルのみをインデックスに追加します

于 2011-06-23T09:28:02.867 に答える
4

シェルに検索するように指示しました*.screen(つまり、「)で終わるすべてのファイルの代わりに、正確にこの文字列-存在しません)。シェルがファイル名の拡張を実行できるように、.screen省略します。\\

于 2010-02-08T12:20:56.400 に答える
4

これは、ディレクトリ内のすべてのファイルをgitで追加するという同様の問題に使用したものです。

find . | sed "s/\(.*\)/\"\1\"/g" | xargs git add 

元の質問の場合、コマンドは次のようになります。

find -name "*.screen" | sed "s/\(.*\)/\"\1\"/g" | xargs git add 

完全に指定されたファイル名にスペースが含まれている場合を扱っていることに注意してください。それが私の答えです。|追加する別のファイルを選択するために、最初の部分の前の部分を編集します。

于 2011-08-23T09:00:38.253 に答える
3

git add * .javaは、すべてのJavaファイルを再帰的に追加するために機能します

于 2013-11-19T19:23:57.147 に答える
1

試す

git add ./documentation/*.screen
于 2010-02-08T12:20:35.387 に答える