Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When would you use .git/info/exclude instead of .gitignore to exclude files?

Tags:

git

gitignore

People also ask

What is difference between Gitignore and Git info exclude?

gitignore" or "info/exclude", one thing to note is "gitignore" is instantaneous than exclude. It takes effect immediately during stating process versus "gitignore" takes effect in the beginning when you clone a repository.

What is Git info exclude?

git/info/exclude . This file is your own gitignore inside your local git folder, which means is not going to be committed or shared with anyone else. You can basically edit this file and stop tracking any (untracked) file.

What is the purpose of using Git ignore?

When Do You Use Git Ignore File? The git ignore file rule allows you to ignore a file you've committed in the past. You use it when you do not want to recommit a file, for example a build artifact.

How do you exclude or ignore some files from Git commit?

Use an exclude file The exclude file lets Git know which untracked files to ignore and uses the same file search pattern syntax as a . gitignore file. Entries in an exclude file only apply to untracked files, and won't prevent Git from reporting changes to committed files that it already tracks.


The advantage of .gitignore is that it can be checked into the repository itself, unlike .git/info/exclude. Another advantage is that you can have multiple .gitignore files, one inside each directory/subdirectory for directory specific ignore rules, unlike .git/info/exclude.

So, .gitignore is available across all clones of the repository. Therefore, in large teams all people are ignoring the same kind of files Example *.db, *.log. And you can have more specific ignore rules because of multiple .gitignore.

.git/info/exclude is available for individual clones only, hence what one person ignores in his clone is not available in some other person's clone. For example, if someone uses Eclipse for development it may make sense for that developer to add .build folder to .git/info/exclude because other devs may not be using Eclipse.

In general, files/ignore rules that have to be universally ignored should go in .gitignore, and otherwise files that you want to ignore only on your local clone should go into .git/info/exclude


Googled : 3 ways of excluding files

  1. .gitignore applies to every clone of this repository (versioned, everyone will have it),
  2. .git/info/exclude only applies to your local copy of this repository (local, not shared with others),
  3. ~/.gitignore applies to all the repositories on your computer (local, not shared with others).

3. actually requires to set a configuration on your computer :

git config --global core.excludesfile '~/.gitignore'

Just to offer our (real world) experience: we started using .git/info/exclude when we had to customize some config files on each development environment but still wanted the source to be maintained in the repo and available to other developers.

This way, the local files, once cloned and modified can be excluded from commits without affecting the original files in the repo but without necessarily being ignored in the repo either.


Use .gitignore for ignore rules that are specific to the project. Use exclude or a global ignore file for ignore rules that are specific to your environment.

For example, my global ignore files ignore the temp files generated by whatever editor I’m using—that rule is specific to my environment, and might be different for some other developer on the same project (perhaps they use a different editor). OTOH, my project .gitignore files ignore things like API keys and build artifacts—those are for the project, and should be the same for everyone on the project.

Does that help?