Quiero descargar el código fuente de la rama master-next usando git como se describe en la wiki de Xilinx .
Intenté esto:
#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git
Initialized empty Git repository in /home/Hannan/master-next/.git/
fatal: remote error:
Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name
Email [email protected] for help
Incluso esto falló:
# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git
Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/
fatal: remote error:
Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name
Email [email protected] for help
El comando que funciona es:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Pero, ¿cómo sé que esto realmente obtendrá la rama master-next y no la rama master ? ¿Cómo obtengo correctamente una rama específica usando git?
Estoy usando RHEL 6, accedido a través de PuTTY.
git checkout master-next
después de la clonación.Este comando debería funcionar:
El comando anterior solo obtiene metadatos del repositorio remoto, no combina fuentes.
Si desea obtener y fusionar las fuentes, el comando sería:
Tenga cuidado con la rama donde está ejecutando el comando de combinación. Será donde se fusionan las fuentes.
fuente
Los repositorios de git contienen todas las ramas (pero comprimidas y solo diferencias, por lo tanto, rara vez son un problema de tamaño)
Por lo tanto, puede clonar todo el proyecto como lo ha hecho con éxito. Esta es una forma estándar de obtener un repositorio, incluso si solo le interesa una rama.
La estructura .git incluirá todas las ramas realizadas en ese repositorio.
Para usar una rama específica, haga lo siguiente:
git checkout [branch_name]
Si la rama existe, los archivos estarán disponibles localmente (como eso, los archivos actuales en los directorios del proyecto).git status
luego mostrará qué rama es la rama actual, por ejemplo:Según Leiaz, se puede clonar una rama específica. En la práctica, nunca he hecho esto ni he visto a otros usarlo. En investigaciones posteriores, veo que es relativamente nuevo, agregado en git 1.7.10 (abril de 2012): opción 'git clone aprendido - una sola rama' para limitar la clonación a una sola rama (¡sorpresa!); las etiquetas que no apuntan al historial de la rama no se obtienen. Por ejemplo:
Aquí, para mi aplicación "linker", estoy revisando la sucursal
v3.0.10
fuente