I have a large project that I was upgrading to edge Rails. I made a copy of the entire project directory and refactored there as a precaution to trusting git (or at least how I might use/misuse it). After completing most of the work I returned to the original project directory and at the console (this is from memory and so is loosely based on what actually happened):
git branch edge
git checkout edge
git rm vendor/plugins
git commit -m "wiped out old plugins"
then I manually copied in the latest versions of the plugins which I had updated in my copied project.
git add vendor/plugins
git commit -m "re-added in plugins, some unchanged, some later versions"
My understanding is that the above add is recursive. To gain some trust in git I swapped back and forth between the master branch and the edge branch at various times during my work, just to make sure it was handling swapping okay.
git checkout master
git checkout edge
What I noticed is that (after some swaps) in the edge branch some of the plugins reverted to the master versions. Numerous times I attempted to commit the lastest version of the problematic plugin, but it eventually reverted after swapping.
I suspect that there might have been an issue with the way I added the files after manually moving them over. (Was git add vendor/plugins/* necessary?) Has anyone had any issue with swapping between branches when two branches contain some of the same subdirectories? How might you handle the merging of the changes found in a copy of the app found in one directory back into the original? The original respository is clean, whereas the copy is fairly messed up from having attempted to get certain plugins to remain changed in the edge branch.