Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
.gitignore file for a general web project - Bare Minimum Git
# -----------------------------------------------------------------
# .gitignore
# Bare Minimum Git
# https://salferrarello.com/starter-gitignore-file/
# ver 20210211
#
# From the root of your project run
# curl -O https://gist.githubusercontent.com/salcode/10017553/raw/.gitignore
# to download this file
#
# This file is tailored for a general web project, it
# is NOT optimized for a WordPress project. See
# https://gist.github.com/salcode/b515f520d3f8207ecd04
# for a WordPress specific .gitignore
#
# This file specifies intentionally untracked files to ignore
# http://git-scm.com/docs/gitignore
#
# NOTES:
# The purpose of gitignore files is to ensure that certain files not
# tracked by Git remain untracked.
#
# To ignore uncommitted changes in a file that is already tracked,
# use `git update-index --assume-unchanged`.
#
# To stop tracking a file that is currently tracked,
# use `git rm --cached`
#
# Change Log:
# 20210211 unignore .env.example
# 20190705 ignore private/secret files
# 20181206 remove trailing whitespaces
# 20180714 unignore .phpcs.xml.dist
# 20170502 unignore composer.lock
# 20170502 ignore components loaded via Bower
# 20150326 ignore jekyll build directory `/_site`
# 20150324 Reorganized file to list ignores first and whitelisted last,
# change WordPress .gitignore link to preferred gist,
# add curl line for quick installation
# ignore composer files (vendor directory and lock file)
# 20140606 Add .editorconfig as a tracked file
# 20140418 remove explicit inclusion
# of readme.md (this is not an ignored file by default)
# 20140407 Initially Published
#
# -----------------------------------------------------------------
# ignore all files starting with . or ~
.*
~*
# ignore node/grunt dependency directories
node_modules/
# ignore composer vendor directory
/vendor
# ignore components loaded via Bower
/bower_components
# ignore jekyll build directory
/_site
# ignore OS generated files
ehthumbs.db
Thumbs.db
# ignore Editor files
*.sublime-project
*.sublime-workspace
*.komodoproject
# ignore log files and databases
*.log
*.sql
*.sqlite
# ignore compiled files
*.com
*.class
*.dll
*.exe
*.o
*.so
# ignore packaged files
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# ignore private/secret files
*.der
*.key
*.pem
# --------------------------------------------------------
# BEGIN Explictly Allowed Files (i.e. do NOT ignore these)
# --------------------------------------------------------
# track these files, if they exist
!.gitignore
!.editorconfig
!.phpcs.xml.dist
!.env.example
@fredgrott

This comment has been minimized.

Copy link

@fredgrott fredgrott commented Dec 1, 2017

Thanks for posting this as I was looking for exactly this gitignore file....switched from native java android coding to web and design and did not have an adequate gitignore setup for web projects

@juanma386

This comment has been minimized.

Copy link

@juanma386 juanma386 commented Jul 6, 2018

WooOoow, very good, thanks.

@itamarsky

This comment has been minimized.

Copy link

@itamarsky itamarsky commented Oct 7, 2018

Thx!

@JohannesBe

This comment has been minimized.

Copy link

@JohannesBe JohannesBe commented Jul 5, 2019

Please add a section for secrets (e.g. .pem, .key files etc)

@salcode

This comment has been minimized.

Copy link
Owner Author

@salcode salcode commented Jul 5, 2019

@JohannesBe thanks for the feedback, this is a good idea

Off the top of my head it seems we should add the following

*.key
*.pem
*.der
@juanpabloisabella

This comment has been minimized.

Copy link

@juanpabloisabella juanpabloisabella commented Jul 22, 2020

Thanks!!

@PotLid

This comment has been minimized.

Copy link

@PotLid PotLid commented Jul 27, 2020

Thanks for the sharing!

@titelplusplus

This comment has been minimized.

Copy link

@titelplusplus titelplusplus commented Jan 8, 2021

Thanks for the sharing. I will try this file and send you feedback. It looks very good. ;-)

@YashTotale

This comment has been minimized.

Copy link

@YashTotale YashTotale commented Jan 13, 2021

This is great! I think adding .DS_Store in a misc category would be a good idea 😄

@salcode

This comment has been minimized.

Copy link
Owner Author

@salcode salcode commented Jan 14, 2021

Hi @YashTotale,

I believe

# ignore all files starting with . or ~
.*

should ignore .DS_Store. If you are seeing any different behavior let me know.

One note is that if you've added a file (e.g. .DS_Store) to your Git repo before you add this .gitignore, the file will not be ignored because it is already part of the repo.

@YashTotale

This comment has been minimized.

Copy link

@YashTotale YashTotale commented Jan 14, 2021

Oh, I glossed over that section. Thanks!

@version0chiro

This comment has been minimized.

Copy link

@version0chiro version0chiro commented Feb 11, 2021

Should we add .env to it too? Like I am new to .gitignore usage so I just had that doubt.

@salcode

This comment has been minimized.

Copy link
Owner Author

@salcode salcode commented Feb 11, 2021

@version0chiro

Yes, .env should be excluded. See Should I add .env to .gitignore?.

In this case, I'm ignoring all files that start with a period with a few exceptions (you can read more about this technique at .gitignore Hidden Files with Exceptions).

Reviewing this made me realize, I had not added .env.example to my list of allowed files that start with a period (.), so I've updated this .gitignore - thanks.

@WaleedTariq109

This comment has been minimized.

Copy link

@WaleedTariq109 WaleedTariq109 commented Aug 5, 2021

Thank you soo much! This is really helpfull.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment