Skip to content

Instantly share code, notes, and snippets.

@pokisin
Last active May 8, 2017 17:33
Show Gist options
  • Save pokisin/910ce0ef4f34c2ad55a77a8e6b874cff to your computer and use it in GitHub Desktop.
Save pokisin/910ce0ef4f34c2ad55a77a8e6b874cff to your computer and use it in GitHub Desktop.
commands git

Gracias al usuario jelcaf

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

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
  • You need to use the explicit SSH protocol URL syntax for git:
git clone ssh://git@server:2222/repo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment