I am adding source control to a project that had none. The problem is that there are a lot of files to initially add to git with a .gitignore file, but I can't figure out how to add all files without including the files matching something in the .gitignore file.
git add *
The above command will not add any files because it detects files which are ignored by the .gitignore.
git add -f *
The above command will add all files including the files I wish to ignore.
So, how do I add all files while still adhering to the .gitignore file?
Another option is to use the Git repo's
exclude
file. This file works similar to a.gitignore
file but isn't committed to the repo.From the Github docs:
You can use this technique for locally-generated files that you don't expect other users to generate, such as files created by your editor.
Use your favorite text editor to open the file called
.git/info/exclude
within the root of your Git repository. Any rule you add here will not be checked in, and will only ignore files for your local repository..git/info/exclude
exclude
file as you would the.gitignore
fileThis will add all paths and ignore matches from .gitignore
Try
git add .
(which means "add all files in the current directory and below")I think you mean
git add .
which will add all of the files to the repo that AREN'T specified in the.gitignore
- you can see these changes by typinggit status
The
.
in bash usually means this directory and all other directories recursively, so if you do this from the bottom level of your repo, you should add all of the files.My usual git flow is to create the
.gitignore
file and add the project files to the repo. I'll test the.gitignore
file by typinggit status
after importing the files - if I see the files that I've added (for example only .php or .html, NOT .mp3 or .mov), then you cangit add .
to add all, andgit commit -m "initial commit"
to commit them and you should be set.