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