2017-01-06 4 views
0

からのコンテンツです:私は、「ビルドの」キーワードを使用して自分のアプリケーション内の特定のフォルダを持っているgitが特定のフォルダを除外し、それは私が次のルールで自分のプロジェクト内の.gitignoreファイル持ってgitignoreルール

# Build results 
[Dd]ebug/ 
[Dd]ebugPublic/ 
[Rr]elease/ 
[Rr]eleases/ 
[Xx]64/ 
[Xx]86/ 
[Bb]uild/ 
bld/ 
[Bb]in/ 
[Oo]bj/ 

をが、私はこの特定のフォルダとそのファイルを私のコミットの一部として含めたいと思っています。私に含める

パスは、次のとおりである。

Views/Build/Index.cshtml 
Views/Build/Create.cshtml 

私は次のことを試してみたが、それは動作していない:私は間違っ

!Views/[Bb]uild/* 

何をしているのですか?

私は自分の問題に対する答えを見つけて、誰かが助けてくれることを願っています。

+0

$ tree -a -I .git . ├── .gitignore ├── hello.cs ├── temp.py ├── temp.txt ├── temp.vi └── Views └── Build ├── Create.cshtml └── Index.cshtml 

これはgit statusからの出力は次のとおりです。

編集

これは私がこれをテストしてみたディレクトリのツリー構造です。無視ルールの前に '/'を付けて、ルートに適用することができます。ビルドアウトプットがルートフォルダーにのみ組み込まれるとき。 – poke

+1

Btw。 (2)、GitはGitがまだ追跡していないファイルだけを無視するので、 'git add -f Views/Build/Index.cshtml'を使ってファイルを明示的に追加することができます。そのファイルの無視ルールをオフにして、その後の変更も適切に検出されるようにします)。 – poke

答えて

1

!Views/[Bb]uildを下部の.gitignoreファイル(他のルールの後ろ)に追加します。

# Build results 
[Dd]ebug/ 
[Dd]ebugPublic/ 
[Rr]elease/ 
[Rr]eleases/ 
[Xx]64/ 
[Xx]86/ 
[Bb]uild/ 
bld/ 
[Bb]in/ 
[Oo]bj/ 

!Views/[Bb]uild 

あなたの試みと私の間の違いは、あなたが!Views/[Bb]uild/*を追加し、私は!Views/[Bb]uildを追加したことだった:私は、次のファイルでこれをテストしてみました。

!Views/[Bb]uild/*が動作しない理由は、「Views/Build 'の下のすべてのコンテンツを無視されないようにしていると思っています」と考えていますが、それ自体は無視されます。私のルールは、ディレクトリ自体を(そして、その下のすべてを拡張して)除外します。ところで

$ git status 
On branch master 

Initial commit 

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     .gitignore 
     Views/ 
     hello.cs 
     temp.py 
     temp.txt 
     temp.vi 
+0

私はあなたが示唆したように努力しましたが、まだ喜びはありません。 git check-ignoreを実行した後も、グローバルルールはまだ適用されているようです: '$ git check-ignore -v XXX/Views/Build/Status.cshtml .gitignore:20:[Bb] uild/XXX/Views/Build/Status.cshtml' – jgill09

+1

@ jgill09 git check-ignoreの出力も表示されますが、すべての変更をunstagingして再設定しようとすると、動作するはずです( 'git reset && git add -A && git status') – Tagc

+0

Perfect、それは働いている。ありがとうございました。 – jgill09

関連する問題