-
-
Save angelmmg90/5cb774bc53a7b16b77f32d924c20903c to your computer and use it in GitHub Desktop.
Git Tips - Mini-trucos de Git para facilitarme la tarea
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################# | |
# 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 | |
# Rename the local branch to the new name | |
git branch -m <old_name> <new_name> | |
# Delete the old branch on remote - where <remote> is, for example, origin | |
git push <remote> --delete <old_name> | |
# Or shorter way to delete remote branch [:] | |
git push <remote> :<old_name> | |
# Prevent git from using the old name when pushing in the next step. | |
# Otherwise, git will use the old upstream name instead of <new_name>. | |
git branch --unset-upstream <old_name> | |
# Push the new branch to remote | |
git push <remote> <new_name> | |
# Reset the upstream branch for the new_name local branch | |
git push <remote> -u <new_name> | |
############################################# | |
# 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/los último/s commit/s (guardando los cambios para poder hacer push de los mismos de nuevo) | |
git reset --soft [commit] | |
# Deshacer el/los último/s commit/s (sin guardar los cambios que de los commit que se han deshecho) | |
git reset --hard [commit] | |
# 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 | |
# Si ya hemos realizado algún commit en local y había un archivo en el repo. Esto pondrá todos nuestros commits locales sobre los cambios recuperados. | |
git pull --rebase origin $rama | |
# Mucho cuidado con esta orden: probablemente sobrescribirá todos nuestros archivos actuales con los archivos locales. Si esto sucede y deseamos DESHACER ESTE CAMBIO lo haríamos con | |
git rebase --abort #(obviamente ejecutar esta orden antes de hacer un nuevo commit) | |
git push origin rama | |
git stash pop | |
# Con poner -> git stash guardamos todos los ficheros en una rama temporal, para volver a recuperar esos fichero hacemos -> 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" | |
# Comparar una rama con otra y ver cambios entre ellas | |
git diff branch_1..branch_2 | |
############################################## | |
# 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 | |
############################################## | |
# Mantener el histórico de git cuando movemos el fichero de carpeta | |
git mv origin.kt destination.kt | |
############################################## | |
# Recuperarse de un desastre | |
http://www.bluemangolearning.com/blog/2009/03/recovering-from-a-disastrous-git-rebase-mistake/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment