git pull keeping local changes
There is a simple solution based on Git stash. Stash everything that you've changed, pull all the new stuff, apply your stash.
git stash
git pull
git stash pop
On stash pop there may be conflicts. In the case you describe there would in fact be a conflict for config.php
. But, resolving the conflict is easy because you know that what you put in the stash is what you want. So do this:
git checkout --theirs -- config.php
If you have a file in your repo that it is supposed to be customized by most pullers, then rename the file to something like config.php.template
and add config.php
to your .gitignore
.