diff --git a/README.md b/README.md
index d80414f95d9578e13f614af9b3446ba244825091..2090a9a4ffd6147596f79836dc7354508f50a911 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,13 @@
+# Dot Files
+
+- [Installation](#installation)
+- [Updating](#updating)
+- [Customizing Your Bash Shell](#customizing-your-bash-shell)
+- [Git Configuration Overrides](#git-configuration-overrides)
+- [Miscellaneous Stuff](#miscellaneous-stuff)
+
+## Installation
+
 To use this repository, you need to clone the repo and run the install script. I recommend cloning the repo into your home directory, but it should work from any directory.
 
 ```bash
@@ -8,21 +18,32 @@ git clone https://git.codingallnight.com/chris/dotfiles.git
 dotfiles/install
 ```
 
-The install script will take any pre-existing dotfiles that would be overwritten by the installation process and rename them by appending `.old` to the end of the filename. For example, your `.bashrc` file will be renamed to `.bashrc.old`. Then, the script creates symlinks in your home directory that point to files in the cloned repository.
-
-If you want to customize the `.bashrc` file, you can add a file to your home directory called `.bashrc.local` and the `.bashrc` file will automatically source it. You can see an example of this file in the repo.
+The install script will take any pre-existing dotfiles that would be overwritten by the installation process and rename them by appending **.old** to the end of the filename. For example, your **.bashrc** file will be renamed to **.bashrc.old**. Then, the script creates symlinks in your home directory that point to files in the cloned repository.
 
 If you don't want to install some features included in this repo, then you can just remove the symlink after installation. For example, if you don't want the git prompt then you can run `rm ~/.git-prompt.sh` to remove it.
 
+## Updating
+
 To update your dotfiles, all you have to do is pull the latest revision of the repository. Because all the dotfiles are symlinked from the home directory, you don't need to re-run the install script.
 
+## Customizing Your Bash Shell
+
+If you want to customize the **.bashrc** file, you can add a file to your home directory called **.bashrc.local** and the **.bashrc** file will automatically source it. See the [**bashrc.local.example**](bashrc.local.example) file in this repo for an example.
+
+## Git Configuration Overrides
+
+You can customize the **.gitconfig** by creating a **.gitconfig.local** file in your home directory. It will be automatically included at the end of the **.gitconfig** file and will override any settings in that file. You can even include more configuration files from your **.gitconfig.local** file to support more advanced configurations or conditional includes. See the example in the [**gitconfig.local.example**](gitconfig.local.example) file in this repo.
+
+## Miscellaneous Stuff
+
 This repository also include several files/directories that are not installed and exist only for my convenience.
 
-- `bin/` contains custom scripts I've created and find useful.
-- `ssh/` contains the public ssh keys for some of my systems.
-- `examples.tar.gz` contains the following 2 directories:
-  - `example-files/` is a directory of many different files types. It is useful when testing out a new syntax highlighting theme.
-  - `test-directory.tar.bz2` is a directory of all the different types of files, directories, and symlinks. It is useful when testing out a new `.dircolors` file.
+- **bin/** contains custom scripts I've created and find useful.
+- **ssh/** contains the public keys for some of my SSH key pairs.
+- **examples.tar.gz** contains the following 2 directories:
+  - **example-files/** is a directory of many different files types. It is useful when testing out a new syntax highlighting theme.
+  - **test-directory.tar.bz2** is a directory of all the different types of files, directories, and symlinks. It is useful when testing out a new **.dircolors** file.
+
 
 
 [_modeline]: # ( vi: set ts=4 sw=4 et wrap ft=markdown: )
diff --git a/gitconfig b/gitconfig
index ca97e55f2dc9f8767580605c325d0cf31e379e23..b7658d8230e5f4cd4e2b9d5b0849ac72c295467a 100644
--- a/gitconfig
+++ b/gitconfig
@@ -51,4 +51,8 @@ REVERSE %C(reverse magenta)magenta %C(red)red %C(yellow)yellow %C(green)green %C
     clean = git-lfs clean -- %f
     smudge = git-lfs smudge -- %f
 
+; Include additional config files
+[include]
+    path = ~/.gitconfig.local
+
 ; vi: set ts=4 sw=4 et ft=gitconfig:
diff --git a/gitconfig.local.example b/gitconfig.local.example
new file mode 100644
index 0000000000000000000000000000000000000000..2741a27e7636e9829e9a79349abd47e9b7d23ffb
--- /dev/null
+++ b/gitconfig.local.example
@@ -0,0 +1,9 @@
+; Include work config first
+[includeIf "gitdir:~/projects/"]
+    path = ~/.gitconfig.local.work
+
+; Then include "me" config again since it's a subdirectory
+[includeIf "gitdir:~/projects/_me/"]
+    path = ~/.gitconfig.local.me
+
+; vi: set ts=4 sw=4 et ft=gitconfig: