Quiero descargar el código fuente de la master-next branch 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 de hecho obtendrá la master-next branch y no la rama maestra ? ¿Cómo obtengo correctamente una rama específica usando git?
Estoy usando RHEL 6, al que se accede a través de PuTTY.
Responder
Como te dice el mensaje de error, git clone
espera un repositorio de git. No puedes «agregar» el nombre de una rama en la ruta de esa manera. Consulta ramas en git .
Puedes clonar una rama única (y su historial): git clone <url> --branch <branch> --single-branch
Consulte git help clone
.
Pero el comando de clonación que ejecutó le proporcionó una copia de todo el repositorio, puede ver las ramas existentes con git branch
y más detalles sobre ellas con git show-branch
.
Cambie a la rama que desee con git checkout branch-name
.
Los primeros capítulos del El libro Pro Git (disponible en línea) brinda más detalles sobre los comandos básicos.
Comentarios
Responder
Este comando debería funcionar:
$ git fetch origin [branch]
El comando anterior solo obtiene metadatos del repositorio remoto, no fusionar fuentes.
Si desea obtener y fusionar las fuentes, el comando sería:
$ git pull origin [branch]
Tenga cuidado con la rama donde está ejecutando el comando de fusión. Será donde se fusionen las fuentes.
Comentarios
- Su respuesta es técnicamente correcta pero creo que podría beneficiarse de una revisión / revisión gramatical escribiendo.
- esto funciona muy bien gracias
Respuesta
Los repositorios de git contienen todas las ramas ( pero comprimido y solo diferencias, por lo tanto, rara vez es 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 está interesado en una rama.
La estructura .git incluirá todas las ramas realizadas en ese repositorio.
Para usar una rama específica, haga git checkout [branch_name]
Si la rama existe, los archivos estarán disponibles localmente (solo eso, los archivos actuales en los directorios del proyecto).
git status
mostrará entonces qué rama es la rama actual, por ejemplo:
Según Leiaz, uno 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 –single-branch» para limitar la clonación a una sola rama (¡sorpresa!); las etiquetas que no apuntan al historial de la rama no se recuperan. Por ejemplo:
git clone -b master-next --single-branch git://github.com/Xilinx/
Aquí, para mi aplicación de «enlazador», estoy revisando la rama v3.0.10
Comentarios
- Yo ' tampoco lo he hecho nunca, recuerdo haber visto la opción. Supongo que ' Los s que rara vez se utilizan como ramas adicionales tienen un tamaño " barato ".
git checkout master-next
después de la clonación.