El caso de #1 es un poco más especial. Si va a estar continuamente cambiando entre PC de casa y portátil (yo lo hacía porque trabajaba por las mañanas en la oficina y por las tardes en casa), andar committeando todo es un engorro.
Por si te sirve de ayuda, lo que yo hice fue usar el PC de casa como servidor, de manera que estuviera siempre encendido (mientras trabajaba), y cuando estuviera en portátil, montaba las carpetas que me interesaban vía SSHFS, además de utilizar enlaces simbólicos para que pareciera que estaba trabajando en local a nivel de IDEs y demás. Todo esto lo tenía metido en un script para que fuera cosa de lanzar un comando en consola y que se montara todo rápidamente.
No es la solución perfecta, pero a mí me iba bastante bien para mis necesidades (andar cambiando con cierta asiduidad).