Aquesta és una revisió antiga del document
Git (libro Amazon)
uso básico
configuración inicial
git config –global user.name <nombre>
git config –global user.email <email>
git config –global core.editor <EDITOR>
git condig –global push.default {matching|simple|current|nothing}
: ver sincronizando directoriosgit config –global core.excludesFile <FILE>
: fichero global de exclusión de ficherosgit config –list
iniciando repositorio
git init
git clone <http|https|ssh>
git config –list
: en el directorio del repositorio te da info sobre el mismo
trabajando con Git
- Directorio de trabajo → Index → Head
git status
git add
git add -u
: añade al Index los archivos que deben ser borradosgit add -A
= git add -u & git add .
git commit
git commit -m «<COMENTARIO>»
git commit -a
: git add -A & git commit
sincronizando repositorios
git clone
git remote -v[vv]
: lista información de los repositorios remotosgit remote add <ALIAS> <DIRECCION_REPOSITORIO>
git remote rm <ALIAS>
git remote rename <ALIAS> <NUEVO_ALIAS>
git pull <ALIAS> <RAMA>
git pull
= git fetch & git merge- ALIAS por defecto es origin
- RAMA pode defecto es master
git push <ALIAS> <RAMA>
- hemos de estar al día en nuestro respositorio local para poder hacer un push
- comportamiento por defecto v2.x : simple en lugar de matching
- simple: solo sube rama activa a la rama de la que has hecho pull, si no tiene el mismo nombre da error
- matching: sube todas las ramas, si no existe la crea
- current: sube los cambios de la rama activa a la rama del mismo nombre, si no existe, se crea
- nothing: test/debug
- upstream : idem simple pero no da error si tiene otro nombre
.gitignore
viendo el historial
git log
- parámetros:
-#_entradas
–oneline
-p
: más detalle, con diff–graph
borrado de archivos
git rm <ARCHIVO>
: borra archivo + borra archivo del Indexgit rm –cached <ARCHIVO>
: borra solo del Indexgit reset HEAD <ARCHIVO>
: idem anterior
arrepentimientos
rehacer un commit
git commit –amend
: si no hay modificación de archivos (no has modificado en Index), edita el comentario- si has olvidado algún archivo, lo añades y ejecutas la instrucció anterior
deshacer cambios de un archivo
git checkout – <ARCHIVO>
: deshace los cambios que has hecho, lo recupera del HEAD
volviendo al pasado
git reset –hard <HASH_COMMIT>
:- deshace commits posteriores al indicado
- recupera los archivos del commit indicado
- DESAPARECEN TODOS LOS CAMBIOS POSTERIORES
- se recomienda hacer un PUSH o ejecutarlo sobre otra rama
resolviendo conflictos
- hay commits posteriores en tu rama, error al hacer push
- hacer pull
- resolver conlictos, si los hubiese (primero aparece lo tuyo, entre <<<<< y ==== y lo que hay en el remoto está entre ===== y >>>>>>
- hacer push
viendo/recuperando archivos antiguos
git show <HASH_COMMIT>
git show <HASH_COMMIT>:path/to/file
git show <HASH_COMMIT>:path/to/file > archivo_copia
más usos de Git
organización
no hay reglas de como organizar tu trabajo, aunque si que hay reglas de como NO hacerlo… se ha de organizar para que el trabajo de los otros no te distraiga
qué poner en el directorio principal
README.md
: fichero mostrado en la página principal de Github. Explicar en pocas palabras de que va el proyecto, como instalarlo, prerrequisitos, licencia, navegación por el repositorioINSTALL.md
: instrucciones detalladas de instsalación.gitignore
LICENSE
TODO
estructura habitual con directorio test
- Git tiene una estructura plana (el todo es tratado en un conjunto, al contrario que CVS o Subversion, que podían tratar un directorio como un proyecto independiente)
- Git permite trabajar con submódulos para emular este comportamiento. Con sentido en proyectos de terceros del que depende tu proyecto o proyectos/equipos muy grandes
git submodule add <URL_REPOSITORIO> <DIRECTORIO>
+cd <DIRECTORIO>
+git submodule init
+git submodule update
+git pull