Skip to content

Instantly share code, notes, and snippets.

@redoPop
Created June 18, 2010 22:08
Show Gist options
  • Save redoPop/444295 to your computer and use it in GitHub Desktop.
Save redoPop/444295 to your computer and use it in GitHub Desktop.
Template .gitignore file for WordPress projects
# This is a template .gitignore file for git-managed WordPress projects.
#
# Fact: you don't want WordPress core files, or your server-specific
# configuration files etc., in your project's repository. You just don't.
#
# Solution: stick this file up your repository root (which it assumes is
# also the WordPress root directory) and add exceptions for any plugins,
# themes, and other directories that should be under version control.
#
# See the comments below for more info on how to add exceptions for your
# content. Or see git's documentation for more info on .gitignore files:
# http://kernel.org/pub/software/scm/git/docs/gitignore.html
# Ignore everything in the root except the "wp-content" directory.
/*
!.gitignore
!wp-content/
# Ignore everything in the "wp-content" directory, except the "plugins"
# and "themes" directories.
wp-content/*
!wp-content/plugins/
!wp-content/themes/
# Ignore everything in the "plugins" directory, except the plugins you
# specify (see the commented-out examples for hints on how to do this.)
wp-content/plugins/*
# !wp-content/plugins/my-single-file-plugin.php
# !wp-content/plugins/my-directory-plugin/
# Ignore everything in the "themes" directory, except the themes you
# specify (see the commented-out example for a hint on how to do this.)
wp-content/themes/*
# !wp-content/themes/my-theme/
@tubiz
Copy link

tubiz commented Aug 28, 2013

How I exclude the README.md file.
Everything is fine whis this gists except that the README.md file isn't displaying
Thanks

@thedgbrt
Copy link

Thank you for this contribution, saved me a lot of time :)

@mcollinsnet
Copy link

I am trying to implement this on a Wordpress to limit version control on plugin and theme subdirectories. How to clone the full site though to get started since most of the site is ignored? What order and steps are to be taken? I first added all files except the custom plugin and theme subdirectories but when i clone, I get an error that the directory is not empty.

@jabes
Copy link

jabes commented Nov 9, 2013

I have experienced an issue where untracked files do not show in my working tree. This was caused by the trailing slashes after directories. Example:

/*
!wp-content/
wp-content/*
!wp-content/themes/
wp-content/themes/*
!wp-content/themes/theme/

Should be..

/*
!wp-content
wp-content/*
!wp-content/themes
wp-content/themes/*
!wp-content/themes/theme

@hectorlorenzo
Copy link

Thanks!

@mattsandersuk
Copy link

Fantastic, thanks!

@pafcioooo
Copy link

Great example.
I have added also wp-config.php.
I am using git versioing for wp for getting updates from dev, to tst and then from tst to production, on each of these wp-config.php is different. What is your opinion?

Update: I suppose this .gitignore excludes everything in the root so it means also wp-config:-)

@deepinsource
Copy link

Thanks!

@dytra
Copy link

dytra commented Mar 5, 2014

brilliant

@ajlanghorn
Copy link

👍

@danielpaul
Copy link

Thank you! :D

@triump0870
Copy link

after I deployed git init with git ignore set for wordpress I found nothing is there. Now I pissed off and want to get back those files but don't know hoe to do it. Can any one suggest how to solve this problem.

@csaborio001
Copy link

Thank you, this is great help!

@Vinoth945
Copy link

i am new to wordpress and use linux...where should i add this code...

@iparr
Copy link

iparr commented Oct 20, 2014

@Vinoth945 Add it to the root of your WordPress directory, so the folder where wp-content and friends are.

@nealfennimore
Copy link

I'm using git 2.3.0 and had to do this to get the wp-content directory unignored.

/*
!.gitignore
!/wp-content/

Copy link

ghost commented Jul 9, 2016

awesome, great gist !

@nmedia82
Copy link

Thanks man

@nnmous
Copy link

nnmous commented Apr 20, 2017

Why you don't want WordPress core files in your project's repository?

If you have a local development environment don't you want to track the code of Wordpress? How can you then clone the code on your live server if you ignore core files?

You can see A collection of useful .gitignore templates and here is a WordPress.gitignore file.

@simohammedhttp
Copy link

@jabes you are right !
I also removed the trailing slashes to get it up and running

@irakligeek
Copy link

This is what I was looking for, thanks a bunch

@blachawk
Copy link

blachawk commented Nov 9, 2017

Thank you, this was a good starting point for me to understand how to keep WP files properly controlled in a git repository.

@w7089
Copy link

w7089 commented Jan 8, 2018

Hi, don't understand why not to keep images in version control.

Read here that

The problem is that when you’re working with other developers, they’ll all have their own copies of the site database, so if you upload an image to your local development version and then commit it to the Git repository, the next time another developer pulls the repository they’ll have an orphaned image in their wp-content/uploads folder without an reference in their database. Not good. To avoid this we keep the entire uploads directory out of version control.

But, what is the alternative for website developed by multiple developers in parallel?
What's wrong with pushing and pulling db and code changes? Suppose that website users don't upload anything to uploads folder. So uploads folder is only read by its viewers.

Is ignoring uploads folder can be viewed as best practice and version controlling it - always a bad practice? Or each website is unique, etc...

Regards

P.S. Read somewhere that images is data, not code. So it should be treated like that and not version controlled. But then, additional procedure is needed for managing images repository somewhere else and checking if it's updated on each git pull by a developer. Moreover deploy to staging/production should be hooked on this procedure as well.
Or i miss something?

@iamklim
Copy link

iamklim commented May 21, 2020

/*
!wp-content
wp-content/*
!wp-content/themes
wp-content/themes/*
!wp-content/themes/theme

Great 👏

@fshequin
Copy link

Lovely...Just what was needed!

Thank you sir!

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