2016-11-04 5 views
1

私は除外されたファイルの名前で.gitignoreファイルを持っています。 git add *の後に.gitフォルダを削除してgit initを実行すると、.gitignoreによって無視されないすべてのファイルが追加されると思います。しかし、.gitignoreはgit statusに追跡されていないファイルとして表示され、!.gitignoreを.gitignoreに含めても、手動でgit add .gitignoreと追加する必要があります。なぜ "git add *"は.gitignoreを除外しますか?

+5

あなたのシェルはglob拡張でドットファイルを無視するようです。あなたが使っているシェルとそれをどのように設定したかを知らなくても、もっと言い表すのは不可能です。とにかく、これは単純な「私のオペレーティングシステムの使い方」の質問であり、プログラミングとは関係ありません。個人的には、私はいつも 'git add。 'を使い、globビジネス全体をサイドステップします。 –

+0

これを読んでください:http://unix.stackexchange.com/questions/70928/shell-wildcards-and-dot-files –

答えて

1

はあなたのコマンドで*ので、実際. wを見つめものを除いて、あなたの現在のディレクトリからのファイル(およびディレクトリ)の名前に置き換えられます。あなたも.gitignoreを含めたい場合は、呼び出す必要があります:

git add * .gitignore 

を使用すると、すべてのドットファイルが呼び出す含めたい場合は、次の

git add * .[!.]* 

あなたはのzshを使用している場合は、単純なパターンを使用することができます:

git add * .* 
+0

「。*」には注意してください: '..'と' git add .. 'は、OPが期待するよりもはるかに多くを含んでいます! –

+0

@MatthieuMoy "注意深い" - 間違いなく正しい。しかし、OPの場合(CWDがリポジトリのルートディレクトリである場合)、gitは外部に何も含めません。別のケースは、あなたがサブディレクトリにいるときです。 – jankes

+0

私は 'fatal:..: '.. ..'がリポジトリ外にありますが、私の質問に答えます。私はgit addを使ってrepoに必要なすべてのファイルをインクルードしたいと思っていましたが、私はちょうど 'git add * .gitignore' – Radivarig

関連する問題