When I develop code, I typically have a bunch of "personal" files that I don't want to share with other developers because they are peculiar to my own idiosyncratic workflow. These files include personal Makefiles, little test scripts, test data files, etc. This hasn't been a terrible problem: I just itemize these files in .gitignore and no else needs to be bothered by my squirrelly ways.
All is not utterly copacetic, however. If I clone this repository, for instance, my personal test files do not come along for the ride, and also these files are not versioned. I.e., as the code changes, my test files and scripts and Makefiles need to change along with the code. If I revert to an earlier version of the code, my scripts and test files are now broken. Or if I'm working from home, and I pull from my Git clone on my work computer, these personal files don't get pulled to my home computer.
So, what would be really keen is if Git had a notion of tracked and shared files as being different from tracked and private files. When I push to a shared repository, the private files would not be pushed, even though Git is tracking them and versioning them for me. And when I clone a repository, I would have the choice of getting only the shared files, or both the shared and private files.
I willing to hazard a guess that I'm just SOL as far as this feature goes, but ya' never know. Git seems to do just about everything, so maybe it has a way of doing this too, and I've just been left out of the loop.
One possible work-around is to make a subdirectory for this stuff (e.g., "dougs-personal-crap") and tell my coworkers not to mess with it. But I don't really want to be airing out my dirty laundry so, especially if there's a better way.