Seguimiento de esta pregunta: si tengo un clon superficial, ¿cómo obtener todos los commits más antiguos para convertirlo en un clon completo?
Seguimiento de esta pregunta: si tengo un clon superficial, ¿cómo obtener todos los commits más antiguos para convertirlo en un clon completo?
Respuestas:
EDITAR: git fetch --unshallow
ahora es una opción (gracias Jack O'Connor).
Puede ejecutar git fetch --depth=1000000
(suponiendo que el repositorio tenga menos de un millón de confirmaciones).
git fetch --unshallow
existe (como en la respuesta de @ sdram), esta respuesta ya no es la mejor.
git fetch --depth=2147483647
es la mayor profundidad posible para proporcionar al comando.
git fetch --unshallow
, pero todavía no muestra todas las ramas.
El siguiente comando (git versión 1.8.3) convertirá el clon superficial a uno normal
git fetch --unshallow
Luego, para acceder a todas las ramas en origen (gracias @Peter en los comentarios)
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";
git fetch origin
partir de una respuesta, debería ser lo mismo que editar a mano .git / config
git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'
funcionó para mí
Necesitaba profundizar un repositorio solo a un compromiso particular.
Después de leer man git-fetch
, descubrí que uno no puede especificar una confirmación, pero puede especificar una fecha:
git fetch --shallow-since=15/11/2012
Para aquellos que necesitan una profundización incremental, otra man
cita:
--deepen=<depth>
Similar a --depth, excepto que especifica el número de confirmaciones desde el límite superficial actual en lugar de desde la punta de cada historial de rama remota.
Ninguno de los mensajes anteriores hizo el truco. Estoy tratando de trabajar con etiquetas git a partir de un clon superficial.
Primero probé
git fetch --update-shallow
que tipo de trabajo a mitad de camino. ¡Sin embargo, no hay etiquetas disponibles!
git fetch --depth=1000000
Este último comando realmente obtuvo las etiquetas y finalmente pude ejecutar
git checkout -b master-v1.1.0 tags/v1.1.0
y terminemos con eso.
HTH
Dos formas de lograr Shallow Clone a Deep Clone. :
Usó los siguientes pasos para descargar la rama: (Esto descarga la copia superficial de la rama y luego la convierte en un Clon completo, es decir, trae la rama completa y su historial).
a. git clone -b branch http: //git.repository/customSP01.git --depth 1
Esto hace que un clon superficial (con la opción de profundidad) solo obtenga una sola rama (a la profundidad solicitada).
b. cd customSP01
c. git fetch –depth=100
d. get fetch –depth=500
....
e. git fetch –unshallow
// El comando anterior convertirá el clon superficial en uno normal. Sin embargo, esto no trae todas las ramas:
Luego, para acceder a todas las sucursales.
f. git remote set-branches origin '*'
[Este paso también se puede hacer manualmente editando la siguiente línea en .git / config.
fetch = + refs / heads / master: refs / remotes / origin / master
para (reemplazar maestro con *):
fetch = + refs / heads / *: refs / remotes / origin / *]
g. git fetch -v
Esto convierte el clon superficial en clon profundo con todos los detalles del historial y la rama.
Puede evitar los pasos fyg, si usa el siguiente en lugar del comando presente en el paso a. para hacer el clon superficial:
git clone -b branch --no-single-branch http: //git.repository/customSP01.git --depth 1