Skip to content

Instantly share code, notes, and snippets.

@jelcaf
Last active May 15, 2024 15:31
Show Gist options
  • Save jelcaf/1404619 to your computer and use it in GitHub Desktop.
Save jelcaf/1404619 to your computer and use it in GitHub Desktop.
Git Tips - Mini-trucos de Git para facilitarme la tarea
#############################################
# Push de la rama actual
git push origin $rama_actual
#############################################
# Volver a un commit anterior, descartando los cambios
git reset --HARD $SHA1
#############################################
# Ver y descargar Ramas remotas
git remote show origin
# Si hay alguna rama de la cual no tengamos los datos aún
git fetch origin
# Obtener la rama remota
git checkout --track -b $rama origin/$rama
# más simple
git checkout -t origin/$rama
git branch -a
# * master
# remotes/origin/HEAD -> origin/master
# remotes/origin/baremacion
# remotes/origin/bootstrap
# remotes/origin/fallo_registro
# remotes/origin/master
git checkout -b baremacion remotes/origin/baremacion
#############################################
# Crear una rama basada en el HEAD
git branch $branch
# Crear una nueva rama basada en el branch $other
git checkout -b $new_branch $other
# Eliminar una rama local
git branch -d $branch
# Eliminar una rama remota
git push origin :$branch
# Eliminar las ramas remotas que ya no existan en origin (Ambos comandos hacen lo mismo)
# Ejecutar con --dry-run para ver los cambios que realizará
git fetch -p
git remote prune origin
#############################################
# Cambiar el nombre de una rama
git branch -m $nombre_rama_anterior $nombre_rama_nuevo
#############################################
# Ignorar el salto de línea en Git http://help.github.com/line-endings/
git config --global core.autocrlf input
#############################################
# Copiar un commit determinado a una rama cualquiera
git checkout $rama
git cherry-pick $SHA1
#############################################
# Trabajando con tags
# Ver los tags locales
git tag
# Añadir un tag
git tag -a v1.2 $SHA1
# Subir tags al repositorio
git push --tags
##############################################
# Deshacer el último commit (sin haber hecho push)
git reset --soft HEAD~1
# Deshacer el último commit (habiendo hecho ya un push)
git revert HEAD
##############################################
# Subir a la rama Commits parciales (los ficheros que no añado se quedan en el stash y se recuperan luego)
git add $file
git commit -m "Mensaje"
git stash
git pull --rebase origin $rama
git push origin rama
git stash pop
# list commits not pushed to the origin yet
git log origin/master..master
# list remote branches that contain $commit
git branch -r --contains $commit
# Deshacer el último commit (dejándolo como estaba con los archivos añadidos y demás)
git reset --soft HEAD^
# Modificar el último commit (incluye los archivos añadidos)
git commit --ammend -m "Nuevo mensaje"
##############################################
# Reescribiendo la "historia"
# - Deshacer commits
# - Unir commits
# - Reordenar commits
# - ...
git rebase -i HEAD~10 # Esto mira los 10 últimos
# Y veremos algo como esto:
pick ce2b738 Commit message 1
pick 2a3cdf7 Commit message 2
# Y podremos realizar las siguientes operaciones sobre los commits
# inlcuyendo reordenar los commits
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# Establecer la fecha de los commits anterior al rebase => git committer date = git author date
git filter-branch --env-filter 'GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE; export GIT_COMMITTER_DATE' <sha1>..HEAD
##############################################
# Recuperarse de un desastre
http://www.bluemangolearning.com/blog/2009/03/recovering-from-a-disastrous-git-rebase-mistake/
@mprizmic
Copy link

mprizmic commented May 7, 2014

excelente

@jhonvidal
Copy link

thanks !!

@ShirleyCC
Copy link

Gracias!

@amaciarey
Copy link

Excelente!! Muchísimas gracias, a los que estamos arrancando con esto nos viene de perlas

@deivguerrero
Copy link

Excelente aportación

@lgrtm
Copy link

lgrtm commented Jul 13, 2015

Gracias, viene de lujo!

@jcarhuazv
Copy link

Para corregir el mensaje de este último commit:

git commit -m "Mensaje incorrecto"

Inmediatamente hacer lo siguiente:

git commit -m "Mensaje corregido" --amend

@DanielSarria
Copy link

Muchas gracias por compartirlo

@edisoncast
Copy link

Excelente. Muchas gracias

@tledesma
Copy link

tledesma commented Nov 4, 2015

Muy útil! Muchas gracias

@AlejandroJSR7
Copy link

Útil, Gracias.

@LynxBcn
Copy link

LynxBcn commented May 6, 2016

Muy buena aportación ;)

@gabino21
Copy link

gabino21 commented Jun 1, 2016

hola hice un git revert xxxxxxx y despues de resolver conflictos en mi bash el nombre de la rama al final dice "|REVERTING" mi duda es aun tengo algo pendiente? ya me cambie de rama, ya probe borrando de mi local y creandola en base a la rama de mi origin y nada
hice el git reset y solo quito el push de lo que hice pero no se quita ese texto a un lado de mi rama

@cokealmonacid
Copy link

gracias!!

@arjayx
Copy link

arjayx commented Jun 26, 2016

Gracias, muy buen material

@Josevayac
Copy link

Excellent thanks.!

@jhoedram
Copy link

Me sirivió, gracias!

@ElkinDev
Copy link

ElkinDev commented Oct 3, 2017

Buena Gracias!!

@borjaOrtizLlamas
Copy link

muy bueno, gracias.

@elkin-garzon
Copy link

hola necesito ayuda con git, resulta que en el proyecto que estoy trabajando me devi devolver a un commit especifico y de hay hacer unos cambios, lo que necesito es hacer push, pero no me suben ese cambios q hice en ese commit, necesito q ese commit sea el ultimo en la linea de tiempo del proyecto para poder hacer push, alguien que me pueda ayuda

@ripper2hl
Copy link

ripper2hl commented Dec 30, 2017

@elkin-garzon crea una rama desde ese commit y ya lo tendras como el ultimo, en la nueva rama que creaste

@gus017
Copy link

gus017 commented Feb 22, 2018

Creo que falt ahi como recuperar un stash borrado, algo super importante y que a mi me paso

@LG-GIT
Copy link

LG-GIT commented Mar 1, 2018

Muy interesante. Necesito ayuda, acabo de revertir un commit mediante git push origin +2310b09^:master. Es decir he vuelto al padre del último commit en la rama master remota(origin). Hasta aquí perfecto. Ahora he hecho un git pull origin master desde otra máquina donde tengo el contenido replicado y me devuelve already-up-to-date, no lo entiendo. En cambio, si desde esa máquina hago un git status me devuelve "your branch is ahead of origin/master" by 98 commits ¿Qué tengo que hacer para dejar la rama master de mi máquina replicada actualizada con la rama origin/master? Gracias

@dianait
Copy link

dianait commented Mar 5, 2018

Genial aporte. Me voy a hacer un póster con esto ¡Muchas gracias!

@alv-alvarez
Copy link

Gracias por el aporte!!

@dannybarrientos
Copy link

Excelente aporte :)

@estebanibannez
Copy link

excelente ! gracias

@gditrani269
Copy link

gran resumen, gracias

@monzondev
Copy link

Excelente contribución, gracias!

@ulldecorb
Copy link

Muy útil y claro.
Me ayudo a comprender mejor git.
Muchas gracias!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment