Skip to content

Instantly share code, notes, and snippets.

@mrroot5
Forked from jelcaf/Operaciones-Git
Last active October 3, 2016 13:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrroot5/e68a3b1f0164e1f845d5a9dfb801fb44 to your computer and use it in GitHub Desktop.
Save mrroot5/e68a3b1f0164e1f845d5a9dfb801fb44 to your computer and use it in GitHub Desktop.
Comando útiles para git.

Push

Listado completo

Reset

Listado completo

#############################################

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^

##############################################

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' ..HEAD

##############################################

Recuperarse de un desastre

http://www.bluemangolearning.com/blog/2009/03/recovering-from-a-disastrous-git-rebase-mistake/

###############################################

Ver las diferencias del fichero main.js entre el la última versión y las dos anteriores

git diff HEAD^^ HEAD main.js git diff HEAD~2 HEAD main.js FROM: http://stackoverflow.com/questions/3338126/how-to-diff-the-same-file-between-two-different-commits-on-the-same-branch#answer-3338145

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