Gitignore is a file in a Git repository that specifies files or directories that should be ignored and not tracked by Git. This file is crucial in keeping your repository organized, reducing clutter, and ensuring that sensitive information is not accidentally committed and pushed to a remote repository.
Why use Gitignore?
In most software development projects, certain files and directories are either not needed for version control or are specific to each developer’s environment. Examples of such files include compiled binaries, test data, configuration files, and log files. By including these files in the gitignore
file, you can avoid cluttered repositories and reduce the chances of committing and pushing sensitive information to remote repositories.
I saw many beginners include their virtual environment files in git. It is not necessary and it takes up so much space in your project. Files including logs, environment variables, IDE files ..etc. should be ignored from git. Those files are not necessary to run your project.
How to create a Gitignore file
A Gitignore file is created in the root directory of a Git repository and named “.gitignore”. You can create this file using a text editor, such as Notepad or Sublime Text, or using the command-line interface.
The Gitignore file syntax The Gitignore file uses a simple syntax to specify files and directories to ignore. A line starting with a “#” is considered a comment and is ignored. Each line specifies a file or directory to ignore. You can use wildcard characters, such as “*”, to ignore multiple files with similar names. For example, to ignore all “.log” files in the root directory, you can add the following line to your Gitignore file:
*.log
To ignore a specific directory, you can specify the directory name followed by a forward slash (“/”). For example, to ignore the “build” directory, you can add the following line to your Gitignore file:
build/
To ignore all files in a specific directory and its subdirectories, you can add a forward slash (“/”) to the end of the directory name. For example, to ignore all files in the “tmp” directory and its subdirectories, you can add the following line to your Gitignore file:
tmp/
Ignoring files that have already been committed
If you have already committed files or directories that you want to ignore, you can remove them from the repository using the “git rm” command. For example, to remove all “.log” files from the repository and ignore them in the future, you can run the following command:
shell
$ git rm *.log
$ git commit -m "Remove log files"
The above command will remove all the log files from git. Then add *.log
line to the ".gitignore" file. After that git do not consider all log files in the project directory.
A sample ".gitgnore" file:-
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
There is a collection of useful .gitignore templates in github. You can copy the content of each language for your use.
In conclusion, the Gitignore file is an essential tool for keeping your Git repository organized and free of clutter. By specifying files and directories to ignore, you can ensure that sensitive information is not accidentally committed and pushed to remote repositories. With its simple syntax, you can easily configure the Gitignore file to meet the needs of your specific project.