2011-01-21 6 views
7

Gitにディレクトリを追加する方法はありますが、.gitgnoreの拡張機能は除外しますか?Gitにディレクトリを追加する方法はありますか?gitgnoreの拡張を除外する方法はありますか?

例えば、私は

git add console/* 

Gitが応答どのようにコマンドが自動的に.gitignore拡張子を除外するようにすることができる

$ git add console/* 
The following paths are ignored by one of your .gitignore files: 
console/networkprobing.ppu 
console/opsdatamodule.lrs 
console/opsdatamodule.o 
console/opsdatamodule.ppu 
console/rcacsSystemDM.compiled 
console/rcacsSystemDM.o 
console/rcacsSystemTestProcs.o 
console/rcacsSystemTestProcs.ppu 
Use -f if you really want to add them. 
fatal: no files added 

で応答などのディレクトリを追加するには、コマンドを実行すると? 追加オプションがありますか?

+0

'console /'にあるすべてのファイルを無視しているようです。これがそうでない場合、あなたの '.gitignore'ファイルには何があり、除外したくないものはありますか? –

答えて

10
git add console/* 

問題はワイルドカードはシェルglobingによって拡大し、gitのに直接渡されていないので、gitの - アドオンは本当にconsoleディレクトリ内のすべてのファイルを渡されていることである[1]。 git-addはディレクトリ内の各ファイルを引数として受け取っているので、無視されたファイルを実際に追加しようとしていると考えられます。なぜ警告が出されているのか、それが実際に何をしようとしているのかを知るためのヒントです。

解決策は、シェルグローブを使用せず、そのようにディレクトリを渡すことです。

git add console 

レポにすべてを追加する同様に、適切な方法(で始まるファイルを含め、「」)無視されたファイルを除いては、[2]レポにgit add .なくgit add *を使用することです。

[1]「。」で始まるものを除きます。シェルのようなshで、Windowsのcmd.exeコマンドプロンプトからこれを試していないと仮定します。 Windowsのコマンドプロンプトを使用している場合は、gitのインストール方法に応じて、msysgitのGit-Bashシェルまたはcygwinのシェルを使用するように切り替える必要があります。
[2] .gitignoreは、追跡されていないファイルが追跡されないようにする目的でのみ使用されます。ファイルがすでにgitによって追跡されている場合、リポジトリから削除されるまで通常どおり処理され続けます。これは、git rm --cached filenameで実際のファイルに影響を与えることなく行うことができます。

7

.gitignoreは、シェルスタイルのグロブパターンをとることができます。あなたはすべての.jpgファイルを無視したいのであれば、たとえば、あなたが.gitignore

# Ignore all JPEGs 
*.jpg 

を追加することができます。新しいディレクトリのJPEGのみを無視する場合は、

new_directory/*.jpg 

通常のようにディレクトリを追加してください。

+0

私はこのコマンドの例とgitの出力をうまく説明しました – vfclists

関連する問題