2017-10-05 3 views
0

私はgit(Perforceから)に切り替えるのを見ています。私はリポジトリに最初にファイルを追加していますが、何らかの理由で私の.gitignoreファイルが使用されていません。 git statusで追加するファイルを確認するとき、無視しなければならないファイルがリストされています。私は非常に基本的な何かを欠いているに違いない。ここでファイルを追加するときに.gitignoreファイルが機能しないのはなぜですか?

は、私がテストしています非常に単純化されたディレクトリ構造です:

**/*.suo 
**/[Bb]in/Debug 

私は呼んでファイルを追加する:

d:/git/ 
    .git 
    Test/ 
     test.suo 
     bin/ 
      Debug/ 
       test.dll 
    .gitignore 

そして、ここでは私の.gitignoreファイルの関連部分であります

git add Test 

次に、追加されたファイルを確認します。

私を示し
git status 

new file: Test/bin/Debug/test.dll 
new file: Test/test.suo 

私は何をしないのですか?これらのファイルはなぜ含まれていますか?

+0

'.suo'と' Debug/'を' .gitgnore'に書くことができると思います。 +1あなたのプロフィール写真! – juan

+0

@juan違いはありません。それらのファイルはまだ追加されており、 'git status'は同じ出力を表示します。 –

+0

インデックスやツリーからファイルを削除しましたか?ファイルがまだステージングされている場合は、 'git reset HEAD 'を試してください。コミットした場合は、 'git rm --cached 'を実行してみてください。 [この回答](https://stackoverflow.com/questions/11451535/gitignore-is-not-working)が役に立ちます。 – juan

答えて

2

PowerShellのecho $null >> .gitignoreを使用して最初にファイルを作成すると問題が発生します。これは、完全に空のファイル(バイトなし)を作成するのではなく、最初にUTF-16リトルエンディアンバイトオーダーマーク( "BOM")を持つファイルを作成するためです。

the comments to this answerに記載されているように、一般的にUTF-8エンコーディングでBOMレスファイルを期待するgitのようなツールではうまくいきません。

PowerShellで空のファイルを作成すると、it's actually quite hackyのように見えます。

+0

素晴らしいフォローアップマット、+1。私は当初、「touch .gitignore」を行い、その後Windowsを実現しました。ありがとう! –

関連する問題