When working on C projects, version control (git) is important. For that you need to be well versed with how to make a .gitignore file. The .gitignore file allows developers to exclude certain files and directories from being tracked by Git, ensuring a clean and organized repository. In this blog post, we will explore a comprehensive C .gitignore file template that covers common files and directories that should be excluded from version control.
Let’s first look at the code:
# 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
- Object Files:
Object files are generated during the compilation process and contain machine code specific to your platform. Including them in your version control system would lead to unnecessary repository bloat. Exclude object files using the following lines in your .gitignore file:
*.o
*.out
*.obj
- Executable Files:
Executable files, created after successfully compiling your C code, are another set of files that do not belong in version control. These files are platform-dependent and are best generated locally.
- Dependency Directories:
When working with C projects, it is common to utilize external libraries or frameworks. Including these dependencies in your version control system is generally unnecessary and can cause bloated repositories. Exclude common dependency directories using the following lines:
lib/
libs/
vendor/
- Build Directories:
During the build process, various temporary files and directories are created. It is best to exclude these build artifacts from version control to avoid clutter. Exclude build directories using the following lines:
build/
bin/
- IDE and Editor-Specific Files:
Different Integrated Development Environments (IDEs) and text editors generate their own project files or configuration files. These files are often unnecessary to track in version control, as they can be regenerated or are specific to each developer’s environment. Exclude IDE and editor-specific files using the following lines:
.vscode/
.idea/
*.sln
*.xcodeproj/
- Compiled Libraries and Frameworks:
If you are working with compiled libraries or frameworks, it is recommended to exclude them from version control. These files can be large and are often easily retrievable through package managers or build scripts. Exclude compiled libraries and frameworks using the following lines:
*.dll
*.so
*.dylib