Mover el repositorio .git al directorio principal [duplicate]

3 minutos de lectura

Tengo un subdirectorio llamado “www” que es un repositorio:

site
|-- www/
|    |-- .git/
|    |-- index.html
|-- design/
|    |-- images.jpg

Me gustaría cambiar el repositorio al directorio principal para que la estructura del repositorio refleje la estructura del archivo original de la siguiente manera:

site
|-- .git/
|-- www/
|    |-- index.html
|-- design/
|    |-- images.jpg

Se puede hacer esto? ¿Existen implicaciones para luego impulsar los cambios a Gitlab?

  • Creo que puedes mover el directorio .git/ hacia arriba en un directorio (o dos). Va a ser un poco caro, y ese primer compromiso va a ser interesante, pero debería funcionar. (basado en la segunda respuesta a esta pregunta stackoverflow.com/questions/1918111/… )

    – mrcheshire

    18/08/2015 a las 20:59

  • @mrcheshire Usando git mv me da un error fatal que dice que el directorio de destino “está fuera del repositorio”.

    – RGilkes

    18 de agosto de 2015 a las 21:06


  • Solo usa mv. Después git add -A, git commit -a

    – maackle

    18/08/2015 a las 21:30

  • @maackle Esto pierde todo el historial de revisiones y parece que los archivos se eliminaron

    – RGilkes

    18 de agosto de 2015 a las 21:36

  • En el estado actual, es design bajo control de revisión (es decir, un par de .git?

    – rholmes

    18 de agosto de 2015 a las 21:47

  • Funcionó perfectamente. ¡Una solución tan simple también!

    – RGilkes

    18 de agosto de 2015 a las 22:37

  • Por el git mv en el paso 2. Esto, temporalmente/hasta que se complete el paso 5, moverá sus archivos a un lugar diferente en el sistema de archivos que mayo ser indeseable cuando estos archivos tienen algún tipo de propósito en vivo, como ser el contenido de un servidor web, por ejemplo. La solución dada por @user5241051 no tiene este defecto.

    – cueedee

    21 de febrero de 2020 a las 14:54


  • Los repositorios son para el desarrollo. Casi por definición, el contenido del árbol de trabajo estará en constante cambio. Usar eso como contenido de servidor web en vivo sería desaconsejable, por decir lo menos.

    – Roland Smith

    21 de febrero de 2020 a las 20:02

  • Si bien eso es muy cierto, git lo hace acostumbrarse a otros fines.

    – cueedee

    25 de febrero de 2020 a las 9:21

  • Para aquellos que llevaron a cabo este movimiento de repositorio de Git, tengo una pregunta. ¿Qué sucede si realizo estos pasos y luego intento restablecer (o pagar) una confirmación que ocurrió antes de este movimiento? ¿Habrá algún problema? Por ejemplo, ¿el repositorio de Git se moverá de alguna manera espalda a su directorio original?

    – cag8f

    20 de marzo de 2020 a las 8:28

  • Pierde todo el historial de sus archivos al hacer esto.

    – Youssef NAIT

    22 de noviembre de 2018 a las 13:49

  • @NAIT Si lo hago git log la historia se conserva pero en GitHub se elimina la historia.

    – viery365

    21 oct 2019 a las 15:25

  • Esta debería ser la respuesta aceptada.

    – cueedee

    21 de febrero de 2020 a las 14:59

  • Habiendo dicho eso, aquí se puede encontrar otro método que reescribe el historial como si el directorio principal siempre hubiera sido parte del repositorio. Es probable que sea necesario impulsar cambios --force aunque.

    – cueedee

    25 de febrero de 2020 a las 20:13

  • ¿Puedes explicar cómo funciona esto? Parece contra intuitivo. Al hacer esto, me di cuenta de que git cambia el nombre, pero ¿qué sucede detrás de escena?

    –Sahil Singh

    6 de abril de 2020 a las 4:44


¿Ha sido útil esta solución?