GITはgitignoreを使用して不要なファイルを無視する
1668 ワード
プログラムを書くときには、コンパイルによって生成するテンポラリファイルやテスト時に生成されるテンポラリファイルがいくつかあり、GITバージョン制御システムでは編集を使用することができる.gitingoreファイルはこれらの不要なファイルをフィルタします.
GITHUBなどのサイトは言語の種類によって予め設定することができるが.gitignoreファイルですが、プロジェクトに複数の言語が含まれている場合、またはプロジェクトにテスト中に生産された一時ファイルがいくつか存在する場合は、手動で編集する必要があります.
注意:gitignoreは、バージョン制御が加わるファイルにのみ作用し、バージョン制御が加わったファイルにはgit rm fileを先に追加する必要がある.gitignoreで.
.gitignoreには、オープンモードと保守モードの2つのモードがあります.
その名の通り、オープンモードは合致を表す.gitignoreの構成ファイルは無視されます.例:
保守モードは、それらのファイルが追跡される必要があることを確認することです.例:
これにより確保することができる.gitignore和.mailmapの2つのファイルは除外されます.
一般的に、あるフォルダの下にある特定のファイルを追跡したいだけで、他のすべてを無視するには、保守モードとオープンモードを併用する方法を使用します.
付録:.gitignoreの一例
.gitignoreはglobモードマッチングを使用します.现在gitignoreでは正規表現はサポートされていません.少なくとも私の現在はサポートされていません.
GITHUBなどのサイトは言語の種類によって予め設定することができるが.gitignoreファイルですが、プロジェクトに複数の言語が含まれている場合、またはプロジェクトにテスト中に生産された一時ファイルがいくつか存在する場合は、手動で編集する必要があります.
注意:gitignoreは、バージョン制御が加わるファイルにのみ作用し、バージョン制御が加わったファイルにはgit rm fileを先に追加する必要がある.gitignoreで.
.gitignoreには、オープンモードと保守モードの2つのモードがあります.
その名の通り、オープンモードは合致を表す.gitignoreの構成ファイルは無視されます.例:
#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
# NOTE! Please use 'git ls-files -i --exclude-standard'
# command after changing this file, to see if there are
# any tracked files which get ignored after the change.
#
# Normal rules
#
.*
*.o
*.o.*
*.a
*.s
*.ko
*.so
*.so.dbg
*.mod.c
*.i
*.lst
*.symtypes
*.order
*.elf
*.bin
*.gz
*.bz2
*.lzma
*.xz
*.lz4
*.lzo
*.patch
*.gcno
modules.builtin
Module.symvers
保守モードは、それらのファイルが追跡される必要があることを確認することです.例:
#
# git files that we don't want to ignore even it they are dot-files
#
!.gitignore
!.mailmap
これにより確保することができる.gitignore和.mailmapの2つのファイルは除外されます.
一般的に、あるフォルダの下にある特定のファイルを追跡したいだけで、他のすべてを無視するには、保守モードとオープンモードを併用する方法を使用します.
/DIR
!/DIR/ImportFile.c
付録:.gitignoreの一例
# – Git
# .a
*.a # lib.a
!lib.a # TODO , subdir/TODO
/TODO # build/
build/
# doc/notes.txt doc/server/arch.txt
doc/*.txt
.gitignoreはglobモードマッチングを使用します.现在gitignoreでは正規表現はサポートされていません.少なくとも私の現在はサポートされていません.