A co-worker and I are both working on the master branch at the moment. I have some code in my working tree that I don\'t want to commit (debugging statements and the like). No
You cannot tell git merge
to merge changes on files that have changes with respect to your local repository. This protects you from losing your changes on those times when a merge goes badly.
With the CVS and SVN approach to merging, if you did not manually copy your files before the update and it scrambled them on merge, you have to manually re-edit to get back to a good state.
If you either commit your changes or stash them before doing a merge, everything is reversible. If the merge does not go well you can try several ways of making it work out and go with the one that works best.
If you do commit experimental or debug changes, you might use git rebase
to move them after the commits you get via git merge
to make it easier to get rid of them or to avoid pushing them to a repository accidentally.
Note that using git rebase
on a branch you have pushed to a shared repository will cause grief for everyone who is pulling from that repository.
I prefer to use git stash
in these cases, but I only use it if the merge changes files that I have edited and not committed.