web-dev-qa-db-ja.com

gitはパスでワイルドカードをサポートしていますか?

私はドキュメントを調べ、検索し、読んだことがありますが、これについては何も見つかりません。

基本的に、私はこれを実行できるようにしたいと思います。

git reset -- *.exe

または

git reset -- */some_executable.exe

これの代わりに:

git reset -- some/very/long/path/some_executable.exe

また、これができるといいですね。

git reset -- topleveldirectory/another/subdirectory/*

これの代わりに:

git reset -- topleveldirectory/another/subdirectory/SomeFile.cpp
git reset -- topleveldirectory/another/subdirectory/SomFile.h

I thinkワイルドカードを使用できます* git-addでファイルを追加しますが、上記の場合に機能するものは見つかりませんでした。

詳細情報を探すことができる場所への提案やポインタはありますか?

使用:64ビットWindows7でのgitバージョン1.7.3.1.msysgit.0

31
Nathan McDaniel

Gitはいくつかのパススペックグロブをサポートしていますが、より洗練されたワイルドカード拡張をサポートしていないmsys bashによって解釈されないように、文字をシェルエスケープするように注意する必要があります。

編集:また、リセットの例では、ディレクトリを引数としてgit resetに渡すだけで、gitは再帰的に動作します。

git reset my/long/path

のではなく

git reset my/long/path/*
18
Matt Enright

ただし、場合によっては、特にgit rmgit checkout、またはgit resetを操作する場合は、すべてのファイルだけでなく、ファイルの特定のサブセットをターゲットにするために特定の方法でワイルドカードを使用する必要があります。 。ワイルドカード文字をエスケープするだけで同じことができます。

git rm app/assets/javascript/templates/projects/\*.jst.ejs
8
Dhruva Sagar

Gitフォルダー内からすべてのexeファイルを再帰的にリセットするには、次の手順を実行します。

git reset -- \*.exe

または、特定のサブフォルダー内にすべてのJavaファイルを追加したい場合は、次のようにすることもできます。

git add ./some/sub/folder/path/**/*.Java

ここで、**は、パスのこのポイントから再帰的にすべてのフォルダーを意味します

8

少なくともサブフォルダー/サブファイルの場合、ワイルドカードは必要ありません。

git add .

...現在のディレクトリ(。)とその下のすべてを追加します。同じことが当てはまります...

git add files/

...これにより、./files./files/foo.txt、および./files/foo/bar.txtが追加されます。

4
coreyward