Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| development:git:start [19/06/2018 02:44] – [info] mate | development:git:start [05/07/2018 03:27] (actual) – suprimit mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | = git | ||
| - | == info | ||
| - | * [[https:// | ||
| - | * puntero: [[https:// | ||
| - | * [[https:// | ||
| - | == metodología de trabajo en Git | ||
| - | === estados | ||
| - | <image shape=" | ||
| - | * Working directory: nuestro directorio de trabajo, que puede ser cualquiera de los diferentes **commits** que hemos ido realizando a lo largo del tiempo, aunque se suele trabajar con el **< | ||
| - | * Staging area: es el índice de ficheros de los que se guardará una " | ||
| - | * Repository: es la carpeta donde residen los metadatos y los diferentes " | ||
| - | |||
| - | === cambios en ficheros | ||
| - | <image shape=" | ||
| - | estados de un fichero: | ||
| - | * sin seguimiento (// | ||
| - | * sin modificar (// | ||
| - | * modificado (// | ||
| - | * preparado (// | ||
| - | |||
| - | == comandos | ||
| - | === básicos | ||
| - | * empezar repositorio local:< | ||
| - | * añadir ficheros/ | ||
| - | * añadir todos los ficheros: <code bash>git add -A</ | ||
| - | * consultar estado:< | ||
| - | * crear un commit (envío/ | ||
| - | * hacer un commit de los ficheros preparados-modificados sin tener que añadirlos explicitamente:< | ||
| - | * forzar cambio de usuario en un commit en concreto: <code bash>git -c “user.name=matebcn” commit</ | ||
| - | * setup sincronización entre repositorio local con repositorio en la nube:< | ||
| - | * enviar commit a repositorio nube:< | ||
| - | * clonar repositorio nube existente en local (se establece ORIGIN de manera automática):< | ||
| - | |||
| - | == con más detalle | ||
| - | puede ser confuso saber que estás comparando dependiendo del estado del fichero (sin seguimiento - sin modificar - modificado - preparado) | ||
| - | * mostrar los cambios con más detalle (en working tree): <code bash>git diff</ | ||
| - | * (en //stage area//): <code bash>git diff --staged</ | ||
| - | |||
| - | === con archivos | ||
| - | * mover archivo dentro del working tree: <code bash>git mv < | ||
| - | * --> es equivalente a eliminar y dar de alta, git detecta que es el mismo fichero en diferente ubicación:< | ||
| - | git rm < | ||
| - | git add < | ||
| - | * eliminar fichero: <code bash>rm < | ||
| - | git rm < | ||
| - | * eliminar del área de trabajo (pero no del //working tree//): <code bash>git rm --cached < | ||
| - | * para hacer que ciertos archivos (o patrones de archivos) no se registren, se puede crear un fichero '' | ||
| - | *.a | ||
| - | |||
| - | # pero no lib.a, aun cuando había ignorado los archivos terminados en .a en la linea anterior | ||
| - | !lib.a | ||
| - | |||
| - | # ignora unicamente el archivo TODO de la raiz, no subdir/TODO | ||
| - | /TODO | ||
| - | |||
| - | # ignora todos los archivos del directorio build/ | ||
| - | build/ | ||
| - | |||
| - | # ignora doc/ | ||
| - | doc/*.txt | ||
| - | |||
| - | # ignora todos los archivos .txt el directorio doc/ | ||
| - | doc/ | ||
| - | </ | ||
| - | |||
| - | === viajes en el tiempo | ||
| - | * deshace el ADD de un fichero: <code bash>git reset HEAD < | ||
| - | * deja el fichero como en el último commit: <code bash>git checkout -- < | ||
| - | * recuperar un snapshot determinado (el proyecto vuelve a ese momento en el tiempo): <code bash>git checkout < | ||
| - | * recuperar el último snapshot: <code bash>git checkout master</ | ||
| - | |||
| - | |||
| - | === log | ||
| - | * consultar últimos cambios:< | ||
| - | * <code bash>git log --oneline</ | ||
| - | * otros parámetros: | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * [[https:// | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * parametros limitar salida: | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | == configuración | ||
| - | * prioridad de los ficheros de configuración (más alta, más prioridad): | ||
| - | - system: / | ||
| - | - global: ~/ | ||
| - | - local: .git/config | ||
| - | * establecer globalmente el usuario de trabajo: <code bash>git config [--global] user.name “mate”</ | ||
| - | * establecer globalmente el e-mail de trabajo:< | ||
| - | * muestra la información almacenada y la ubicación del fichero: <code bash>git config --show-origin --get-all user.name</ | ||
| - | * comprobando la configuración: | ||
| - | |||
| - | |||
| - | == tags | ||
| - | alias a los commit, en lugar de su código | ||
| - | * aplica el <tag> al actual: <code bash>git tag < | ||
| - | * <code bash>git tag <tag> < | ||
| - | * listado de tags: <code bash>git tag</ | ||
| - | * usar los tags para cambiar de // | ||
| - | |||
| - | == alias | ||
| - | * <code bash>git config --global alias.cm ‘-c “user.name=matebcn” commit’</ | ||
| - | /via: [[https:// | ||
| - | |||
| - | == RESET | ||
| - | <callout type=" | ||
| - | |||
| - | * no toca la working area: <code bash>git reset --soft</ | ||
| - | * borra staging area pero no working area: <code bash>git reset --mixed</ | ||
| - | * <label type=" | ||
| - | |||
| - | |||
| - | == PTE | ||
| - | {{tag> pendiente wiki}} | ||
| - | <callout type=" | ||
| - | < | ||
| - | push repositorios remotos | ||
| - | repositorio centralizado | ||
| - | al hacer un clone se establece como remoto | ||
| - | git remote add origin < | ||
| - | git push origin master → enviamos a origin la master | ||
| - | |||
| - | actualizando repositorios remotos | ||
| - | git branch -all → muestra todas las ramas, incluidas las remotas | ||
| - | git pull origin master → descarga los cambios de origin a master | ||
| - | git pull --rebase → preserva tus cambios y que no sean machacados por el PULL | ||
| - | </ | ||
| - | < | ||
| - | ramas | ||
| - | linea de desarrollo de commit uno detrás de otro | ||
| - | ramas: trabajar en características diferentes | ||
| - | git branch “caracteristica” → crea rama | ||
| - | git branch → muestra las ramas | ||
| - | git checkout “caracteristica” → moverte a la rama | ||
| - | git checkout -g “caracteristica” → crea la rama y nos movemos a ella | ||
| - | git branck -d “caracteristica” → elimina rama | ||
| - | fusión de ramas: | ||
| - | git log --oneline --decorate | ||
| - | git checkout master | ||
| - | git merge “caracteristica” | ||
| - | bloqueo pesimista -> bloqueas el archivo | ||
| - | bloqueo optimista -> se supone que hay trabajo repartido, no debería haber conflicto. | ||
| - | si no se toca la misma línea, GIT puede llegar a resolver. si no, intervención manual | ||
| - | |||
| - | </ | ||
| - | == eclipse + bitbucket | ||
| - | |||
| - | * instalar nuevo software (repositorio) : '' | ||
| - | * Seleccionar **Git Integration for Eclipse** y **Java implementation of Git** | ||
| - | * para acceder, cambiar perspectiva a Git | ||
| - | * también se puede importar un proyecto desde un repositorio GIT (desde Archivo - Import) | ||
| - | |||
| - | * una vez configurado: | ||
| - | * para importar a GIT, creamos un nuevo repositorio local a partir de nuestro proyecto y lo enviamos al repositorio creado | ||
| - | |||
| - | /via: [[https:// | ||