I've used 1,2 and 3 and 1 is by far the best.
RDP is generally fine, but it relies on the other computer being a 'server' and turned on. If you develop on both machines you are going to get divirgence and complicate your life as you have both local and rdp sessions open on each.
Is good for collaboration on a single file, but doesnt work well for multiple file projects and again has the 'which machine is the server?' problem
Just requires you to commit and push before changing machines. You should be commiting regularly anyway and a feature branch will mitigate the problems of commiting half finished work.
(new list)
- Just requires you to commit and push before changing machines. You should be commiting regularly anyway and a feature branch will mitigate the problems of commiting half finished work.