+1 for using SMB shares.
We are using them extensively and they are very simple.
And an addition: just set up share with permanent mapping (My Computer -> Context menu -> Map network drive -> Reconnect at logon), so you have, say, Z:\
drive. Then you could just point git's remote to /z/my-repo.git/
and that's all. You could work with it anytime you like.
Also you could setup some local server with logical 'central' repository. Thus you will not need to setup each dev's box with many shares etc. When you want to share - just push changes to central server. In small team (less than 10-15 developers) you could go away with just convention about when you could base your work on someone else's branch in central repo or not (so that you won't have problems with forces pushes, rebases, rewriting history etc). In larger teams or distributed team you could setup fetch rules about which remote branches should be tracked/fetched automatically ('public' shared branches where history rewriting is not welcome) and which should be fetched only by explicit demand ('private' branches where developers could share work with peers and make an arrangements how to deal with branches individually).