I’m pleasantly surprised how easy it is to perform branching with Git. What worries me is, for all the hundreds of files that I may have in my directory structure, can I really trust Git to make sure all the files are put in to the right state when I checkout another branch? It seems too quick to be true.
Has anyone experienced a time where they checkout a different branch, and some files were skipped, or just not changed when you know they should have?
Because Git manages pointers to files based on the hashing of the contents of the files, it will not need to rewrite a nearly identical directory, no matter how many files are in there. If you look at the structure of commits and the concept of a tree, you will see that Git will walk these structures quite efficiently and only change the parts of your working directory that need to be changed. It’s power lays in the simplicity.
I’ve never had any issues with Git and large projects. The linux kernel and other large projects are versioned with Git with no problems and fast and reliable performance.