Lihuen
RSSRSS AtomAtom

Diferencia entre revisiones de «Git»

(Borrando archivos y enmendando el último commit)
(Eliminando archivos de la historia de Git (no hacer a menos que se justifique))
Línea 110: Línea 110:
 
http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History
 
http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History
  
 +
===Crear branches nuevos y vacíos===
 +
Por ejemplo pueden ser útiles para las gh-pages de GitHub:
 +
<source lang="bash">
 +
git checkout --orphan NUEVO_BRANCH
 +
git rm -rf .
 +
</source>
 +
 +
* [http://bitflop.com/document/116 How to Create a New and Empty Branch in Git (bitflop.com)]
 
===Eliminando archivos de la historia de Git (no hacer a menos que se justifique)===
 
===Eliminando archivos de la historia de Git (no hacer a menos que se justifique)===
 
* https://help.github.com/articles/remove-sensitive-data
 
* https://help.github.com/articles/remove-sensitive-data

Revisión de 18:47 19 dic 2013

Documentación

Taller de Git

Recetas

Configuración

  • Configurar git para el usuario:
git config --global user.name "Pipo Perez"
git config --global user.email  "pperez@servidor.com" # Un mail que se pueda publicar
git config --global color.ui auto
git config --global core.editor vim
git config --global alias.lol 'log --graph --decorate --pretty=oneline --abbrev-commit'
git config --global alias.lola 'log --graph --decorate --pretty=oneline --abbrev-commit --all --date=local'
git config --global alias.unstage 'reset HEAD --'

Colores personalizados

Básicos

  • Inicializar un repositorio local
mkdir foobar
cd foobar
git init
  • Agregar quitar archivos
git add archivo
git rm archivo
  • Agregar cambios en un archivo
git add archivo
  • Status y commit
git status
git commit -m "Comentario"
  • Borrar archivos untracked
git clean -f

Para archivos untracked incluyendo los que estén en .gitignore:

git clean -f -x

Borrando archivos y enmendando el último commit

  • Para sacar un archivo de el área de staging (si le hicimos "git add" por accidente):
git reset HEAD -- <archivo>

o si se definió el alias unstage como se ve arriba:

git unstage <archivo>
  • Para deshacer los cambios de un archivo que no está commited:
git checkout -- <archivo>
  • Si faltó agregar o borrar algún archivo, o la descripción del último commit tiene errores:
git commit --amend
  • Para corregir el nombre y dirección de autor del commiter:
git commit --amend --author "Nombre Apellido <napellido@email.com>"
  • Para borrar un commit:
git reset --hard HEAD~1
git push --force origin HEAD

Remotos

  • Agregando servidores remotos
git remote add origin
  • Push (enviar cambios) del branch master a un remoto
git push origin master
  • Pull (recibir cambios) desde el branch master de un remoto
git pull origin master
  • Para configurar servidor origin y branch master por defecto para los push y pull, hay que ejecutar alguno de los siguientes comandos una sola vez:
git push --set-upstream origin master
git push -u origin master

Remotos con tags y branches

  • Push de todos los branches (locales) y push de todos los tags:
git push --all
git push --tags
  • Push de todas las refs (branches, tags y branches remotos):
git push --mirror
  • Eliminar una ref en un remoto:
git push --delete nombre_branch
git push :nombre_branch

Diffs y logs

  • Comparar con commits anteriores:
git diff HEAD~1 # Commit padre
git diff HEAD~2 # Commit padre del commit padre
git diff HEAD^1 # Commit de un padre (para merges)
git diff HEAD^2  # Commit de otro padre (para merges)
  • Ver logs con dibujos de los branchs:
git log --graph --decorate
  • Ver quién modificó cada línea:
git blame archivo
  • Ver qué cambió en cada commit:
git whatchanged
  • Distintas formas de especificar una revisión:

http://git-scm.com/docs/gitrevisions.html

  • Ver la historia de commits:

http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History

Crear branches nuevos y vacíos

Por ejemplo pueden ser útiles para las gh-pages de GitHub:

git checkout --orphan NUEVO_BRANCH
git rm -rf .

Eliminando archivos de la historia de Git (no hacer a menos que se justifique)

Reescribiendo la historia

Haciendo que la historia sea lineal, corrigiendo comentarios de commits, etc...