¿Debo save el repository de git en Home o Eclipse Workspace?

Me estoy moviendo de svn a git, y estoy dispuesto a sentar algunas buenas bases.

Por defecto, Eclipse quiere almacenar mi repository de clones local en ~ / git. Me siento más cómodo manteniendo todos los datos para una tarea en el mismo espacio de trabajo, por lo que estoy dispuesto a mantenerlo en mi área de trabajo.

¿Hay algún pros / contra significativo que deba considerar?

No pretendo hacer muchas ramificaciones: realmente voy por la ruta de dvcs principalmente para superar algunos problemas de comunicación de internet poco confiables.

También estoy cambiando a Git en Eclipse y leyendo sobre este tema. Parece que la sabiduría actual (aunque no todos están de acuerdo) es:

  • Acostúmbrese a NO tener sus proyectos debajo del directory del espacio de trabajo.

  • Tener un repository de git para cada grupo de proyectos de eclipse relacionados (y tal vez más files, por supuesto). El concepto de "proyectos relacionados" depende de su conveniencia [*]

  • Para cada repository, un directory de primer nivel para cada proyecto de Java. Esto implica que tendrá un directory .git/ y, en el mismo nivel, los directorys del proyecto.

Ejemplo: supongamos que, "antes de GIT", tenía un espacio de trabajo de eclipse con varios proyectos:

 /wk/workspace/.metadata/ /wk/workspace/projXXX/ /wk/workspace/projXXXtest/ (related with the previous) /wk/workspace/projYYY1/ | /wk/workspace/projYYY2/ > three related projects /wk/workspace/projYYY3/ | /wk/workspace/projZ/ (a project you are not going to version in git) 

A continuación, creará dos directorys vacíos, uno para cada repository, por ejemplo:

 ~/repositories/XXX/ ~/repositories/YYY/ 

y luego, con el nuevo layout de GIT, tendrás:

 /wk/workspace/.metadata/ /wk/workspace/projZ/ ~/repositories/XXX/.git/ (XXX related repository - non-bare) ~/repositories/XXX/projXXX/ ~/repositories/XXX/projXXXtest/ ~/repositories/YYY/.git/ (YYY related repository - non-bare) ~/repositories/YYY/projYYY1/ ~/repositories/YYY/projYYY2/ ~/repositories/YYY/projYYY3/ 

Eclipse (EGit) hace todo esto por usted cuando hace clic en Equipo-> Compartir en un proyecto existente y especifica (en el ejemplo) ~/repositories/XXX/.git/ como repository, ( ~/repositories/XXX/ como "Directorio de trabajo" " , deje en blanco " Ruta dentro del repository " ).

[*] Tenga en count que aquí cada grupo de proyectos es, desde el punto de vista de Git, solo un set de directorys dentro de un repository. Algunas implicaciones relevantes: en el ejemplo anterior, nunca tendrá en el área de trabajo de Eclipse dos twigs / versiones diferentes de proyectos projYYY1projYYY2 simultáneamente; y, por ejemplo, cuando label una confirmación de proyecto, en realidad está labelndo el compromiso completo del repository (grupo de proyectos).

El .git debe estar donde está tu tree de trabajo (es decir, los files que representan el HEAD actual de la twig actual en la que estás trabajando)

Recuerde que con Git, las twigs no son directorys (a diferencia de SVN), por lo que su tree de trabajo representará directamente un contenido de twig, no varios directorys (para sus diversas twigs), seguidos de un contenido por twig.

Normalmente me gusta mantener mis fonts de proyectos separadas de mi área de trabajo de Eclipse, pero eso es una cuestión de preference.

Creo que es una buena idea almacenar el tree de versiones de git fuera del área de trabajo. De esta forma, es posible separar proyectos de diferentes repositorys, pero aún así manejarlos en el mismo espacio de trabajo.

Además, si coloca el código fuera del área de trabajo, puede organizar sus proyectos jerárquicamente fuera del área de trabajo (en la copy de trabajo), pero aún así ver la representación plana en Eclipse.