Я храню эти локальные изменения в ветке, которая никогда не будет сдвинута.Мой рабочий процесс выглядит следующим образом (при условии, что master
отслеживает публичную ветку origin/master
):
git checkout -b private
// make local changes, such as plugging in license keys, passwords, etc.
git commit -am "DO NOT PUSH: local changes"
// tag here because later my cherry-pick starts here
git tag -f LOCAL
// now work on what you need to work on... and whenever I am ready, commit away
git commit -am "feature 1"
// keep hacking...
git commit -am "feature 2"
// When I get to a point where I want to push the series of commits I've got to the remote repo:
git checkout master
git cherry-pick LOCAL..private
git push origin master
git rebase master private
git tag -f LOCAL
// resume working...