0

.gitignore の特別なファイルを無視したい。symTbl.c など、コンパイラによって生成されるこの種のファイルがいくつかあり、それらは異なるサブディレクトリにあります。その間、他のすべての .c ファイルを受け入れる必要があります。

したがって、私の .gitignore は次のようになります。

*
!*/
!*.c
symTbl.c

それでも symTbl.c は無視できません。ではどうすれば?ありがとう!

: .lzs .bin など、追跡すべきではない他のファイルがいくつかあります。そのため、最初に * を無視し、次に !*.c を使用して *.c を追跡する必要があります。そうすることで、単純に symTbl.c を .gitignore に入れることはできません。

4

1 に答える 1

1

あなたはちょうど置く必要があります

symTbl.c

.gitignoreプロジェクトのルートにあるファイルで。すでに追跡されているファイルは無視できません。git ls-files | grep symTbl.cすでにコミットしているかどうかを確認して削除します(git ls-files | grep symTbl.c | xargs -d'\n' rm直接削除するには)

編集

新しいレポを作成し、これらのファイルをそこに入れました

# show all files, excluding those in the .git directory
$ tree -a -I .git
.
├── bla.bin
├── bla.c
├── foo
│   ├── bla.bin
│   ├── bla.c
│   └── symTbl.c
├── .gitignore
└── symTbl.c

1 directory, 7 files

私の .gitignore には、あなたが持っていたものが含まれています:

$ cat .gitignore
*
!*/
!*.c
symTbl.c

実行すると、ルートとディレクトリgit add .に異なるbla.cファイルが追加されました。foo/

$ git add .
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   bla.c
#   new file:   foo/bla.c
#

おそらく、あなたはすでにsymTbl.cファイルをコミットしていますか? もしそうなら、git rmそれらとそれらは今後適切に無視されます。

于 2013-03-13T08:44:53.187 に答える