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

  • " El comando de clonación que ejecutó le dio una copia de todo el repositorio ". ¿Todo el repositorio significa que ambas ramas se fusionaron? no fusionado. Una rama en git no es una copia de todo el directorio, como se explica aquí .
  • Lo que hice fue esto: " git clone -b master-next github.com/Xilinx/u-boot-xlnx.git " ¿esto no es correcto?
  • Ya no ' necesitaba clonar. El comando que mostró en su pregunta le dio el repositorio con todas las ramas. Pero esto también es correcto. Es ' equivalente a hacer git checkout master-next después de la clonación.

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/ 

ingrese la descripción de la imagen aquí 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 ".

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *