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?
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.
Puedes probar esto:
git fetch --update-shallow
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