imagen

Apuntes git

Cosas que olvido de git

Flujo habitual

Pasos instrucción
Paso 1: Revisar cambios git status
Paso 2: Opcional, Revisar detalle de cambios git diff
Paso 3: Agregar cambios que quiero incluir git add archivo.xcode
Paso 4: Agregar un commit git commit -m "mensaje del commit"
Seguir trabajando, y cuando tengas algo ya listo para agregar, repetir paso 1 al paso 4.
Paso 5: Enviar mis cambios de la rama feature/nombre_de_mi-rama al repositorio remoto (subir cambios) git push origin feature/nombre_de_mi-rama

Comandos útiles

comando que hace
git status Muestra el estado de los cambios respecto al último commit. Mostrara en rojo lo que ha cambiado o los archivos nuevos.
git add archivo.java Agrega un archivo
git add carpeta/ Agrega toda una carpeta y su contenido
git add . comodín, agrega todo lo que esta en rojo
git add -p Permite agregar solo parte del archivo. (Algunas lineas)

Opciones
y Agrega al stage este trozo (las que se ven en pantalla).
n No agregar al stage este trozo (las que se ven en pantalla).
q salir; no agrega lo que se ve en pantalla ni a ninguno de los restantes.
a Agrega este trozo (lo que se ve en pantalla) y todos los siguientes en el archivo.
d No agregar al stage este trozo (lo que se ve en pantalla) y ninguno de los siguiente en el archivo.
s Divide el trozo (lo que se ve en pantalla) en trozos más pequeños (te volverá a preguntar por cada uno de ellos).
e editar manualmente el trozo actual
git branch Mostrara la rama en la que estamos
git branch feature/algo 65fd57w Crea una nueva feature/algo desde el commit 65fd57w
git branch -d <name-of-branch> Elimina una rama local. Ej: git branch -d feature/add-image
git checkout -b feature/cambio-logo Crea una nueva rama llamada feature/cambio-logo
git commit -m "Add layout in Login" Crea un commit con el mensaje Add layout in Login
git reset --hard HEAD~1 ⚠ ELIMINA los cambios y vuelve al estado del último commit
git reset --mixed HEAD~1 Conserva los cambios y REVIERTE el COMMIT y el ADD
git reset --soft HEAD~1 Conserva los cambios, el ADD, solo REVIERTE el último commit
git reset HEAD <fileName> Conserva los cambios y saca filename del staged
git diff Muestra las diferencias desde el último commit hasta ahora
git push origin feature/mi-rama Sube los commits desde mi computador local hacia el repo remoto (github)
git push origin HEAD Sube los commits desde mi computador local hacia el repo remoto de la rama en la cual me encuentro
git show <hash> Muestra el detalle de los cambios aplicados en el commit
git checkout <archivo.js> ⚠ ELIMINA los cambios a archivo.js y lo deja como estaba.
git checkout <SHA1> Nos movemos al commit indicado (viajar en el tiempo).
git checkout <nombre_rama> Nos cambiamos a la rama indicada. ( tambien se usa para salir del HEAD detached at 006f749780 que nos dejo el git checkout <SHA1> )
git remote add <shortname> <url> Agregar repositorio remoto git remote add origin https://...
git remote -v Muestra una lista de los repositorios remotos vinculados en ese repo local
git remote set-url <nombre-repo-existente> <nueva-url> Actualizar la URL del repo origin git remote set-url origin git@github.com:sarahchima/personal-website.git
git bisect hace una búsqueda binaria a través de su historial de commits para ayudarte a identificar lo más rápidamente posible qué commit introdujo un problema. ref
git blame -L 12,22 pay.js Muestra el historial de cambios (quien edito) de las lineas 12 a la 22 del archivo pay.js
git blame -L 12,+1 pay.js Muestra el historial de cambios (quien edito) de las linea 12 del archivo pay.js
git rebase <otra_rama> Trae todos los commits que no están en tu rama (en la que estas ubicado en ese momento) desde <otra_rama>, mantiene los hash de la <otra_rama>, y tus commits los pone al final. Los hash de tus commits serán re-calculados
git clone <url> --depth N Clona un repositorio, donde N corresponde a los últimos N commits que serán incluidos en la clonación.

tags

comando que hace
git tag -a v1.4 -m "my version 1.4" agrega un nuevo tag
git push origin tag_name enviar un tag al repo remoto
git push --tags enviar todos los tags al repo remoto
git push --delete origin tagname remover un tag en repositorio remoto
git tag -d tagname remover tag en local
git tag -a v1.2 15027957951b64cf874c3557a0f3547bd83b3ff6 crea el tag v1.2 en el commit 15027957951b64cf874c3557a0f3547bd83b3ff6
git tag -a v1.2 15027957951b64cf874c3557a0f3547bd83b3ff6 -m "feat: awesome feature" crea el tag v1.2 en el commit 15027957951b64cf874c3557a0f3547bd83b3ff6 con el mensaje "feat: awesome feature"