Git bash puede descargarse desde acá.
- Darle click derecho y clickear la opción git bash here.
- Tipear o copiar y pegar* el comando
git clone <url del repositorio>
- 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).
- Ahora se estará en el directorio y el repositorio estará en el branch master.
- 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.
-
Una vez que se esté en la carpeta TP_Integrador, darle click derecho y clikear la opción git bash here.
-
Elegir entre:
- Crear un nuevo branch.
- Cambiar de branch actual.
- Borrar branch.
* Nota: <nombre>
refiere al nombre del branch en cuestión ❗
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 ❗
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 ❗
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.
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.
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.
Para actualizar los archivos modificados en github (y/o en su repositorio local), deben seguirse los siguientes pasos:
-
Utilizar el comando
git status
para ver qué archivos han sido modificados así como el nombre del branch actual. -
Utilizar el comando
git add <archivo>
para agregar el archivo modificado ogit 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. -
Utilizar el comando
git commit -m <mensaje>
para hacer el commit en el repositorio local. -
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
❗
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.
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.
- 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) 👀.
- Buenas prácticas:
-
Mensajes claros en los commits y en los pull request 👍.
-
Nombres claros en los branches 🔍.
- 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 💪.
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 |
-
Mi código no se actualiza/modifica cuando cambio de branch!
- 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.
- 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).
- 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.
-
Me salta un error por consola al querer cambiar de branch!
- 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.
- El branch al que se desea cambiar no existe.
- 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).
- Crear el branch.
-
Quiero volver atrás todo a como estaba antes!
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.
-
Hice el commit y quiero reeditar el mensaje!
Utilizar el comando
git commit --amend
y se abrirá una ventana donde se podrá editar el mensaje del commit.
-
Clonar el repositorio (desde github):
En la carpeta que se desea clonar el repositorio utilizar el comando
git clone <url del repositorio>
-
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>
- Para crear un branch:
-
Traer los archivos desde un branch de github a uno local:
En un branch del mismo nombre, utilizar el comando:
git pull origin <nombre>
. -
Estado de los archivos en el branch:
Para ver qué archivos han sufrido modificaciones:
git status
. -
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.
-
Commit:
Hacer un commit en el repositorio (una vez hecho el staging):
git commit -m <mensaje>
. -
A github:
Parado sobre el branch que se desea llevar al repositorio en github (una vez ya hecho el commit):
git push origin <nombre>
. -
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.