Skip to content

Latest commit

 

History

History
269 lines (149 loc) · 11.5 KB

Instructivo de GIT.md

File metadata and controls

269 lines (149 loc) · 11.5 KB

Instructivo de pasos a seguir cuando usen GIT en este trabajo:

*SIEMPRE leer la sección 6 antes de trabajar. 😄 👍

Contenido
1. Clonando archivos desde github
2. Cambiar/crear/borrar branch (Rama)
3. Trabajar en los archivos
4. Actualizar el repositorio
5. Código a integrar
6. Recordatorio
7. Problemas comunes y cómo resolverlos
8. TL;DR
9. Fotos y ejemplos

Requisito previo: haber descargado e instalado GIT bash

Git bash puede descargarse desde acá.


Clonar un repositorio:

Ir a la carpeta donde van a guardar los archivos.

  1. Darle click derecho y clickear la opción git bash here.
  2. Tipear o copiar y pegar* el comando git clone <url del repositorio>
  3. Acá se puede proseguir de dos formas distintas:
  • O se cierra la consola, se va a la carpeta TP_Integrador y nuevamente repite el paso 1.
  • Tipear cd TP_Integrador en la consola (cd significa change directory).
  1. Ahora se estará en el directorio y el repositorio estará en el branch master.
  2. Ver paso siguiente para saber como importar los branches existentes.

*Recuerde que no funciona usar ctrl + c / crtl + v en la consola de bash. De hecho, procure no usuar ctrl + tecla en la consola de bash.


Cambios de branch:

*NUNCA usar ninguno de estos comandos con codeblocks abierto. 👎

*SIEMPRE revisar que los cambios se dieron en los archivos. 👍

  1. Una vez que se esté en la carpeta TP_Integrador, darle click derecho y clikear la opción git bash here.

    *SIEMPRE arrancar tirando el comando git branch para ver los branches disponibles y el branch actual. 👍

  2. Elegir entre:

  • Crear un nuevo branch.
  • Cambiar de branch actual.
  • Borrar branch.

* Nota: <nombre> refiere al nombre del branch en cuestión ❗

Crear un nuevo branch:

El comando a utilizar en este caso es git checkout -b <nombre>.

Si se desea utilizar un branch de github, hay que fijarse que coincida el nombre con el branch de github.

Una vez creado el branch, git va a pararse automáticamente al nuevo branch.

* Nota: Cuando se crea un nuevo branch, los archivos que van a figurar allí serán los mismos y estarán en el mismo estado que los del branch donde se estaba cuando se creó el nuevo ❗

Cambiar de branch actual:

Utilizar el comando git branch para saber en que branch se encuentra el repositorio actualmente.

En caso de no estar en el branch deseado, utilizar el comando git checkout <nombre> para pasar a tener ese branch.

*Nota: Cuando se crea/cambia de branch, los archivos deberían de modificarse automáticamente. En caso de que no ocurra, ver la sección de problemas comunes

Borrar branch:

Para borrar un branch primero hay que asegurarse de no encontrarse en el branch que se desea eliminar (ver cambiar de branch).

Una vez que se encuentra en otro branch, utilizar el comando git branch -D <nombre>. Esto borrará el branch especificado.

Traer archivos desde github al branch:

Se debe de estar en un branch del mismo nombre del que queremos traer los archivos. Una vez allí utilizar el comando git pull origin <nombre> para traer los archivos de github al branch.


Archivos:

Una vez modificado cualquier archivo git considerará que el branch tiene modificaciones.

Puede utilizarse el comando git status para ver aquellos archivos que han sido modificados.

*A veces es posible que no se permita cambiar de branch cuando ser realizaron ciertas modificaciones.


Commits:

Para actualizar los archivos modificados en github (y/o en su repositorio local), deben seguirse los siguientes pasos:

  1. Utilizar el comando git status para ver qué archivos han sido modificados así como el nombre del branch actual.

  2. Utilizar el comando git add <archivo> para agregar el archivo modificado o git add . para agregar TODOS los archivos modificados. Estos archivos serán agregados al staging (o actualización del repositorio local) y por ende estarán listos para el commit.

  3. Utilizar el comando git commit -m <mensaje> para hacer el commit en el repositorio local.

  4. Para hacer que el commit ocurra en github, es necesario utilizar el comando git push origin <nombre>.

*Nota <archivo> refiere al nombre del archivo (exactamente igual a como aparece cuando se corre git status) ❗

*Nota 2 <mensaje> refiere al mensaje que figurará una vez que se suba el archivo como commit

*Nota 3 <nombre> refiere al nombre del branch en la que va a hacerse el commit. Este se conoce al utilizar el comando git status


Merge:

*SIEMPRE revisar que base y compare sean los branches correspondientes.

Una vez se considere que los archivos en un branch en github ya están listos para ser integrados al branch principal del ejercicio, se debe ir al repositorio en github y (en la sección branches en el branch que se desea integrar) se clickea el botón New pull request.

*Nota Merge sirve para combinar dos branches en una único branch.

Detalles del Pull Request:

Al generar un Pull Request, se habilita para hacer Merge. Primero debe seleccionarse la base (es decir, en qué branch quedará todo el código una vez que se combinen). Por defecto al crearse el Pull Request desde el branch que queremos combinar, el compare (qué branch va a combinarse) será el branch en el cual clickeamos New pull request.

El pull request estará sujeto a review y necesitará ser autorizado por quién sea dueñ@ del repositorio.

Una vez aprobado, el botón de Merge estará disponible y al presionarlo se combinarán ambos branches.


Importante:

  1. Comandos a utilizar seguido:
  • git branch (ver el listado de branches así como el branch actual) 👀.

  • git status (ver el listado de archivos modificados así como el branch actual) 👀.

  1. Buenas prácticas:
  • Mensajes claros en los commits y en los pull request 👍.

  • Nombres claros en los branches 🔍.

  1. Siempre a tener en cuenta:
  • git checkout -b <nombre> siempre genera el nuevo branch a partir de los archivos del branch en la cuál se estaba antes de utilizar el comando 💿.

  • Mantener el repositorio lo más actualizado posible así es más fácil trabajar entre varias personas el código 😉.

  • Proveer feedback en los reviews hechos a los pull request así como en los issues 💪.


Problemas:

Lista de problemas comunes
1. Cambiar de branch no modifica los archivos
2. No me permite cambiar de branch
3. Volver para atrás
4. Modificar el mensaje del commit

1. Cambios de branch sin modificación del código:

  • Mi código no se actualiza/modifica cuando cambio de branch!

    Las posibles causas son las siguientes:

    1. Un programa tiene abierto el archivo que está siendo editado y no tiene soporte de git. Esto está generando problemas ante un cambio de branch.
    2. Previamente tener abierto el archivo sin guardar en un programa que no soporte git y pese a que los archivos se modifican, esto no se verá hasta que se vuelvan a abrir (Y en ese caso guardar probablemente sobreescriba los archivos).

    Las posibles soluciones:

    • Una vez cerrados los programas que ocasionan conflicto, volver a cambiar de branch (cambiar a otro y volver al deseado).
    • Intentar nuevamente todo el proceso previo a abrir los programas.

2. No permite el cambio de branch:

  • Me salta un error por consola al querer cambiar de branch!

    Las posibles causas son las siguientes:

    1. Hay un conflicto de archivos que se han creado y que no se les ha hecho commit o un archivo que debería de existir en el branch al que quiero.
    2. El branch al que se desea cambiar no existe.

    Las posibles soluciones:

    1. En caso de ser un archivo trivial el quue sobra, eliminarlo. Caso contrario crear un archivo con el mismo nombre y extensión que el que fue eliminado (ocupando temporalmente el lugar, puede ser eliminado luego).
    2. Crear el branch.

3. Deshacer cambios:

  • Quiero volver atrás todo a como estaba antes!

    Cómo hacerlo?

    Para saber a donde se desea volver, es necesario usar el comando git reflog el cuál muestra todo lo que se hizo en git en todos los branches.

    Cada branch tiene un index HEAD@{<índice>}.

    Luego utilizar el comando git reset HEAD@{<índice>}. Esto devolverá todo al estado de ese índice.

4. Editar mensaje del commit:

  • Hice el commit y quiero reeditar el mensaje!

    Cómo hacerlo?

    Utilizar el comando git commit --amend y se abrirá una ventana donde se podrá editar el mensaje del commit.


Resumen:

  1. Clonar el repositorio (desde github):

    En la carpeta que se desea clonar el repositorio utilizar el comando git clone <url del repositorio>

  2. Crear/cambiar/borrar branch:

    En la carpeta del repositorio:

    Listar los branches actuales: git branch

    • Para crear un branch: git checkout -b <nombre>
    • Para cambiar de branch: git checkout <nombre>
    • Para borrar un branch: git branch -D <nombre>
  3. Traer los archivos desde un branch de github a uno local:

    En un branch del mismo nombre, utilizar el comando: git pull origin <nombre>.

  4. Estado de los archivos en el branch:

    Para ver qué archivos han sufrido modificaciones: git status.

  5. Preparar archivos para commit (staging):

    Correr git status para ver aquellos archivos que han sido modificados. Luego:

    • git add <archivo> para añadir el archivo específico al staging.
    • git add . para añadir todos los archivos modificados al staging.
  6. Commit:

    Hacer un commit en el repositorio (una vez hecho el staging): git commit -m <mensaje>.

  7. A github:

    Parado sobre el branch que se desea llevar al repositorio en github (una vez ya hecho el commit): git push origin <nombre>.

  8. Cómo hacer Pull Request en github:

    Ir a la sección branches. Seleccionar el branch en la que se desea combinar el código modificado como el branch que figura en el selector que dice base. El branch que tiene el código modificado deberá figurar como seleccionada en el selector que dice compare.

    Detallar en el mensaje los cambios hechos y presionar en create new pull request.


Fotos y ejemplos: