bin
サブディレクトリにあるファイルを除く、リポジトリ内のすべてのファイルを無視したい。次を.gitignore
に追加してみました:
*
!bin/*
ただし、これは望ましい効果をもたらしません。bin/
内に新しいファイルを作成しましたが、git status
を実行してもnothing to commit (working directory clean)
が表示されます。
助言がありますか?
これにより、ルートファイルとルートディレクトリが無視され、ルートbinディレクトリが無視されなくなります。
/*
/*/
!/bin/
これにより、サブディレクトリとそのファイルを含むすべてのbinディレクトリを取得できます。
ここでは、1つのディレクトリ「MY_SUPER_DUPER_TEMPLATE_directory」以外のすべてを無視する方法
構造:/ bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
/*
!/bitrix
/bitrix/*
!/bitrix/templates
/bitrix/templates/*
!/bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
*.DS_Store
*.gitignore
宛先への途中のすべてを除外する必要がありますが、宛先を含める必要があります。
注:これは除外ファイル(つまり.gitignore)であるため、ロジックは逆になります。tspディレクトリを除くすべてを無視し、srcディレクトリを除くtspディレクトリのすべてを無視します...
/*
!/tsp
/tsp/*
!/tsp/src
/tsp/src/*
!/tsp/src/*.h
!/tsp/src/*.cpp
!/tsp/src/data.txt
!/.gitignore
唯一の問題は、bin
ディレクトリ自体がbin/*
パターンと一致しないため、gitはbin
ディレクトリを見ることさえできないことです。
思い浮かぶ2つの解決策があります。
.gitignore
:
*
!/bin/
!bin/*
または
.gitignore
:
*
!/bin/
bin/.gitignore
:
!*
最初のソリューションは、bin
と呼ばれないサブディレクトリにあるbin
ディレクトリ内のファイルを無視しなくなるので、2番目のソリューションを好みます。これは、状況によっては問題になる場合と問題にならない場合があります。
公式の git doc から、例の1つは言います:
特定のディレクトリfoo/bar以外のすべてを除外する例(/ *に注意してください-スラッシュなしで、ワイルドカードはfoo/bar内のすべても除外します):
$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar
先頭のスラッシュについての説明: gitignoreで先頭のスラッシュを使用する場合 。
最新のGITバージョンでフォローしてみてください。
*
!*/
!/path/to/your/dir/**
パターンをスラッシュで開始することにより、各パターンを最上部のgitディレクトリに固定する方が良いと思います。
/*
!/public_html
!/.gitignore
すべてのファイルを無視する代わりに、無視したくないディレクトリ内のファイルではなく、最上位ファイルのみを無視します。
この.gitignore
は私のために働く:
*/
/*
!bin/