(→Configuración) |
(→Borrando archivos y enmendando el último commit) |
||
(No se muestran 7 ediciones intermedias de 2 usuarios) | |||
Línea 19: | Línea 19: | ||
git config --global alias.lol 'log --graph --decorate --pretty=oneline --abbrev-commit' | 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.lola 'log --graph --decorate --pretty=oneline --abbrev-commit --all --date=local' | ||
− | + | git config --global alias.unstage 'reset HEAD --' | |
[http://git-scm.com/book/ch7-1.html#Colors-in-Git Colores personalizados] | [http://git-scm.com/book/ch7-1.html#Colors-in-Git Colores personalizados] | ||
Línea 38: | Línea 38: | ||
git status | git status | ||
git commit -m "Comentario" | 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=== | ===Borrando archivos y enmendando el último commit=== | ||
* Para sacar un archivo de el área de staging (si le hicimos "git add" por accidente): | * Para sacar un archivo de el área de staging (si le hicimos "git add" por accidente): | ||
− | git reset HEAD <archivo> | + | 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: | * Para deshacer los cambios de un archivo que no está commited: | ||
git checkout -- <archivo> | git checkout -- <archivo> | ||
+ | * Para deshacer los cambios de todos los archivos que no está commited: | ||
+ | git checkout -- . | ||
* Si faltó agregar o borrar algún archivo, o la descripción del último commit tiene errores: | * Si faltó agregar o borrar algún archivo, o la descripción del último commit tiene errores: | ||
git commit --amend | git commit --amend | ||
Línea 82: | Línea 91: | ||
===Diffs y logs=== | ===Diffs y logs=== | ||
+ | * Para comparar palabra a palabra cuando hay un conflicto y las líneas sean muy largas, primero debemos identificar los commit de los que se hicieron el merge, por ejemplo si uno es '''bba49bb''', y el otro '''834b27f''', el comando sería: | ||
+ | |||
+ | git diff --word-diff=color bba49bb 834b27f | ||
+ | |||
* Comparar con commits anteriores: | * Comparar con commits anteriores: | ||
git diff HEAD~1 # Commit padre | git diff HEAD~1 # Commit padre | ||
Línea 103: | Línea 116: | ||
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 | ||
Línea 110: | Línea 131: | ||
* http://git-scm.com/book/en/Git-Tools-Rewriting-History | * http://git-scm.com/book/en/Git-Tools-Rewriting-History | ||
+ | Separar un directorio en un nuevo repositorio Git con git subtree y eliminar la historia de los archivos borrados: | ||
+ | * http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository/17864475 | ||
+ | en particular la [http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository/17864475#17864475 respuesta con título "The easy way"] | ||
[[Categoría:Git]] | [[Categoría:Git]] | ||
[[Categoría:Desarrollo]] | [[Categoría:Desarrollo]] |
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 --'
mkdir foobar cd foobar git init
git add archivo git rm archivo
git add archivo
git status git commit -m "Comentario"
git clean -f
Para archivos untracked incluyendo los que estén en .gitignore:
git clean -f -x
git reset HEAD -- <archivo>
o si se definió el alias unstage como se ve arriba:
git unstage <archivo>
git checkout -- <archivo>
git checkout -- .
git commit --amend
git commit --amend --author "Nombre Apellido <napellido@email.com>"
git reset --hard HEAD~1 git push --force origin HEAD
git remote add origin
git push origin master
git pull origin master
git push --set-upstream origin master git push -u origin master
git push --all git push --tags
git push --mirror
git push --delete nombre_branch git push :nombre_branch
git diff --word-diff=color bba49bb 834b27f
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)
git log --graph --decorate
git blame archivo
git whatchanged
http://git-scm.com/docs/gitrevisions.html
http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History
Por ejemplo pueden ser útiles para las gh-pages de GitHub:
git checkout --orphan NUEVO_BRANCH git rm -rf .
Haciendo que la historia sea lineal, corrigiendo comentarios de commits, etc...
Separar un directorio en un nuevo repositorio Git con git subtree y eliminar la historia de los archivos borrados:
en particular la respuesta con título "The easy way"