He visto preguntas similares, pero algunas son muy antiguas y otras no son lo que estoy buscando o no tienen respuestas.

Tengo proyectos en Eclipse en /workspace/project1 y /workspace/project2. Son proyectos de Gradle y dependen unos de otros. También tengo /workspace/project3, que es un proyecto de Gradle pero independiente.

Necesito "subirlos" a un repositorio de git en Bitbucket. Instalé EGit para ayudarme con esto. Me pregunta dónde se encuentra mi repositorio local y no sé qué decirle. ¿Debo crear un repositorio por espacio de trabajo o por grupo de proyectos dependientes o qué?

Por ejemplo, cuando hago clic con el botón derecho en un proyecto y presiono Team > Share > Git, llego a este cuadro de diálogo y no sé qué debo completar allí.

enter image description here

1
Mark 15 dic. 2016 a las 22:22

2 respuestas

La mejor respuesta

Cada uno (no desnudo) El repositorio git tiene un directorio de trabajo en el que se almacenan los archivos de la confirmación actualmente extraída (denominada HEAD).

De forma predeterminada, el directorio de trabajo es el padre del directorio de metadatos de git (llamado .git), pero se puede separar a través de un configuración de configuración. Por ejemplo: git config core.worktree /path/to/workdir

EGit no puede tratar con repositorios que tienen un directorio de trabajo separado como se responde aquí: El directorio de trabajo de EGit no se encuentra en el repositorio local

Pero independientemente de esta limitación, no puede dividir el directorio de trabajo de un repositorio de git entre varios espacios de trabajo.

Por lo tanto, debe mover los proyectos al directorio de trabajo para que se parezcan a esta estructura:

~/git/my-repo/.git
~/git/my-repo/project1
~/git/my-repo/project2
~/git/my-repo/project3

Si project3 es independiente de los demás, puede permanecer donde está o estar ubicado en otro lugar completamente.

Una palabra de precaución al planificar la distribución de proyectos interdependientes en varios repositorios de git. Esto también hace que los repositorios de git sean efectivamente interdependientes, pero sin que git tenga una herramienta de gestión de dependencias.

Para que EGit mueva los proyectos, debe ingresar project1 en el campo de entrada Ruta dentro del repositorio .

Los archivos de compilación de uso común, como el master pom.xml o los archivos de Gradle correspondientes, se ubicarían en la raíz del directorio de trabajo. Esto también facilita la configuración de servicios de compilación populares como Travis, Codeship y Friends.

1
lucid_dreamer 11 jul. 2017 a las 01:00

Algunas cosas para entender / tener en cuenta:

  • Un espacio de trabajo de Eclipse es un contenedor lógico de proyectos, no necesariamente un contenedor físico. La carpeta en la que se encuentra un espacio de trabajo también puede ser un contenedor físico de proyectos, lo que significa que los archivos del proyecto se pueden ubicar en una carpeta debajo de la carpeta del espacio de trabajo (esta es la ubicación predeterminada si crea un nuevo proyecto en Eclipse). Pero eso no es un requisito; un proyecto que está contenido dentro de un espacio de trabajo puede tener su contenido (sus archivos) ubicado en cualquier ubicación de su sistema de archivos.
  • En la mayoría de las configuraciones de desarrollo, los repositorios de git locales se encuentran en una ubicación "estándar" en el directorio de inicio del usuario, a saber, %USER_HOME%/git/name-of-repo. Nuevamente, ese no es un requisito estricto, los usuarios tienen la opción de clonar o crear repositorios en cualquier ubicación que elijan.

Entonces, Eclipse eGit le muestra esos 2 ejes de flexibilidad. Le pregunta dónde desea crear su repositorio git local, que generalmente es diferente a la carpeta de su espacio de trabajo. Utilice el botón Crear ... para crearlo. Creo que en ese momento se completará automáticamente el campo Ruta dentro del repositorio . Si no es así, puede nombrar esa ruta como desee (generalmente es el mismo que el nombre del proyecto, aunque no necesariamente)

Al final de todo, tendrá su espacio de trabajo (contenedor lógico), así como un repositorio de git local, que será la ubicación física del contenido del proyecto.

1
E-Riz 15 dic. 2016 a las 20:28