I use Git to track changes to my Marlin firmware and Slic3r configs.  Here's some notes for myself on how that works.

 

Setting Up Marlin

I created my original Marlin directory by forking the Marlin repo RC branch in Github, then pulling that repo to my machine

git clone https://github.com/paulhurleyuk/Marlin.git

I can then edit the config, and push the results back to github

git add .

git commit -m "Initial setup"
git push

Setting up Slic3r

Slic3r gets installed and creates its initial configs, so instead of pulling down from github, I want to create a git repo in the existing directory and pushing to github.  Creating the empty repo in Github can technically be done from the command line, but its easier in the web.  once created do the following

git init 

git add .
git commit -m 'message'
git remote add origin https://github.com/paulhurleyuk/Slic3r
git push -u origin master

Pulling changes from the Marlin repo to my fork

git remote add upstream https://github.com/MarlinFirmware/Marlin

git fetch origin
git fetch upstream
git merge upstream/RC

Then resolve and conflicts (usually with configuration.h, edit the file and look for the <<< and >>> markers

git add .

git commit -m "Merge upstream changes"
git push origin