我刚开始学习C语言(使用Thinking In C),想知道在C项目的git仓库中应该忽略哪些文件。
建议越明显越好,因为我是一个完全的新手。谢谢!
build
,然后您可以在.gitignore
中忽略整个目录。
这样就完成了。build/
我猜你会有一些生成的文件,你不想把它们放在仓库里(假设你的构建输出目录在git层级结构中):
GIT的忽略文件是我倾向于逐步进行的。"嘿,我不需要把这些东西放在我的仓库里" ...
编辑:关于dmckee的评论
是的,你绝对想要忽略交换文件、临时文件等。我将以下内容作为我的.gitignore基线:
#Some of these are related to eclipse. So i keep them out of my repo
.cproject
.dep/
.project
.settings/
#files being edited
*~
# make and build files
*.lst
*.o
*.eep
*.lss
*.map
*.sym
# I keep these, since I prefer having the reference of the final build
# *.elf
# *.hex
.gitignore
文件模板涵盖了各种语言项目中大部分常见的文件。.gitignore
模板如下:# Prerequisites
*.d
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
使用*nix系统和Makefile,您可以将每个生成的文件添加到.gitignore中。
作为示例,当从单个源创建可执行文件时(C可执行文件生成示例),我使用以下内容:
%: %.c
gcc -o $@ $<
grep '^$@$$' .gitignore > /dev/null || echo '$@' >> .gitignore
可以将以下行添加到其他配方中,以将目标$@
添加到.gitignore
文件中:
grep '^$@$$' .gitignore > /dev/null || echo '$@' >> .gitignore
解释:
grep '^$@$$' .gitignore
:在.gitignore
中搜索目标
^
表示行首$$
是一个单独的$
(但Makefile需要$$
才能工作),表示行尾||
:仅在左侧命令失败时执行下一个命令
grep ...
未在.gitignore
中找到目标名称时,才会执行echo ...
echo '$@' >> .gitignore
:将目标名称添加到.gitignore
中最终,您将添加清理和重建所有内容以确保正确忽略所有文件
.gitignore
文件中(这样每个人都会忽略生成的文件),但是忽略备份文件和其他类型的文件取决于您的环境(备份文件可以是〜或.bak),不在传输存储库.git/info/exclude中(或在设置为~/.gitconfig中的core.excludesfile)。 - Jakub Narębski