11

いくつかの変更をコミットしようとしていました。以前git addは、ワイルドカードを使用して作成した可能性のある新しいjavascriptファイルを追加していました*.js。次に、変更をコミットしてgithubにプッシュしました。

git add * .js
git commit -m "stuff"
gitpushgithubマスター

githubをチェックしたところ、編集していたファイルがすべて空白でした。彼らはそこにいて、ただ空っぽでした。

その後、もう一度コミットしようとしましたが、GITはすべてが最新であると言いました。

次に戻ってgit commit -m "stuff"みると、GITは、ワイルドカードを使用して追加したばかりなのに、「。js」ファイルの束がステージングされていないというメッセージを表示したことに気付きましたgit add *.js。これは、コミットしようとしたときに表示されたメッセージです。

#ブランチマスター上
#コミットのためにステージングされていない変更:
#(「gitadd / rm ...」を使用して、コミットされる内容を更新します)
#(「gitcheckout --...」を使用して作業ディレクトリの変更を破棄します)
#
#変更:src / static / directory1 / js / module1 / file1.js
#変更:src / static / directory1 / js / module1 / file2.js
#変更:src / static / directory1 / js / module2 / file1.js

これを修正するために、私は自分のgit add:を行うときにいくつかのディレクトリを下に移動する必要がありました。

git add src / static / directory1/*。js

もう一度コミットしてgithubにプッシュした後、ファイルがそこにあったので、これはうまくいったようです。

git commit -m "stuff"
gitpushgithubマスター

ここで何が起こっていたのですか、ワイルドカードを機能させるためにいくつかのディレクトリを下に移動する必要があったのはなぜですか?

ありがとう!

4

3 に答える 3

34

あなたが使用する必要があります

git add '*.js'

シェルが受け取る前にgitがワイルドカードを受け取るように、引用符を使用する必要があります。引用符がない場合、シェルは現在のディレクトリ内でのみワイルドカード検索を実行します。

于 2012-08-15T19:51:53.467 に答える
16

ワイルドカードを使用して追加したばかりですが、次のようになります。git add *.js

シェルワイルドカード拡張は、サブディレクトリに再帰しません。ワイルドカードは、Gitが表示する前に展開されます。

を使用するgit add '*.js'と、Gitはワイルドカードを認識し、で終わるすべてのパス名と照合し.jsます。*は初期位置にあるため、.jsサブディレクトリを含むすべてのファイルを再帰的に追加することになります。

于 2012-08-15T19:52:01.313 に答える
8

別の方法は、findコマンドを使用することです。

find . -name '*js' -exec git add {} \;

execなしで実行すると、作業中のファイルのリストが表示されます。したがって、このコマンドを好みに合わせて調整するのは簡単です。

于 2012-08-16T04:33:33.180 に答える