development:git:start

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
development:git:start [18/06/2018 03:54] – [log] matedevelopment:git:start [05/07/2018 03:27] (actual) – suprimit mate
Línia 1: Línia 1:
-= git 
-== info 
-  * [[https://git-scm.com/book/es/v2]] 
-  * puntero: [[https://git-scm.com/book/es/v2/Fundamentos-de-Git-Ver-el-Historial-de-Confirmaciones]] 
  
-== metodología de trabajo en Git 
-=== estados 
-<image shape="thumbnail">{{ :development:git:pasted:20180606-133803.png }}</image> 
-  * 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 **<HEAD>** 
-  * Staging area: es el índice de ficheros de los que se guardará una "copia" o "snapshot" en el próximo commit 
-  * Repository: es la carpeta donde residen los metadatos y los diferentes "snapshots" que tenemos de nuestro proyecto 
- 
-=== cambios en ficheros 
-<image shape="thumbnail">{{ :development:git:pasted:20180607-140218.png }}</image> 
-estados de un fichero: 
-  * sin seguimiento (//untracked//) 
-  * sin modificar (//unmodified//) 
-  * modificado (//modified//) 
-  * preparado (//staged//) --> //cached// como sinónimo 
- 
-== comandos 
-=== básicos 
-  * empezar repositorio local:<code bash>git init</code> 
-  * añadir ficheros/directorios a //stage area//(si modificamos el fichero después de haberlo añadido al //stage//, la versión que se guardará con el **commit** será la primera modificación. La segunda modificación quedará pendiente de ser añadida (add) y envíada (commit):<code bash>git add .</code> 
-  * añadir todos los ficheros: <code bash>git add -A</code> 
-  * consultar estado:<code bash>git status</code><code bash>git status -s // abreviado</code> 
-  * crear un commit (envío/paquete/snapshot):<code bash>git commint -m "Mensaje descriptivo"</code> 
-  * hacer un commit de los ficheros preparados-modificados sin tener que añadirlos explicitamente:<code bash>git commit -a -m "Mensaje descriptivo"</code> 
-  * forzar cambio de usuario en un commit en concreto: <code bash>git -c “user.name=matebcn” commit</code> 
-  * setup sincronización entre repositorio local con repositorio en la nube:<code bash>git remote add origin <dirección repositorio Git></code> 
-  * enviar commit a repositorio nube:<code bash>git push -u origin master</code> 
-  * clonar repositorio nube existente en local (se establece ORIGIN de manera automática):<code bash>git clone <dirección repositorio git></code> 
- 
-== 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</code> 
-  * (en //stage area//): <code bash>git diff --staged</code> 
- 
-=== con archivos 
-  * mover archivo dentro del working tree: <code bash>git mv <archivo> <nuevo_nombre_archivo></code> 
-  * --> es equivalente a eliminar y dar de alta, git detecta que es el mismo fichero en diferente ubicación:<code bash>mv <path>/<archivo> <pah2>/<archivo> 
-git rm <path>/<archivo> 
-git add <path2>/<archivo></code> 
-  * eliminar fichero: <code bash>rm <archivo> 
-git rm <archivo></code> 
-  * eliminar del área de trabajo (pero no del //working tree//): <code bash>git rm --cached <archivo></code> 
-  * para hacer que ciertos archivos (o patrones de archivos) no se registren, se puede crear un fichero ''.gitignore''<code txt .gitignore># ignora los archivos terminados en .a 
-*.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/notes.txt, pero este no doc/server/arch.txt 
-doc/*.txt 
- 
-# ignora todos los archivos .txt el directorio doc/ 
-doc/**/*.txt 
-</code> 
- 
-=== viajes en el tiempo 
-  * deshace el ADD de un fichero: <code bash>git reset HEAD <fichero></code> 
-  * deja el fichero como en el último commit: <code bash>git checkout -- <fichero></code> 
-  * recuperar un snapshot determinado (el proyecto vuelve a ese momento en el tiempo): <code bash>git checkout <codigo_commit></code> 
-  * recuperar el último snapshot: <code bash>git checkout master</code> 
- 
- 
-=== log 
-  * consultar últimos cambios:<code bash>git log</code> 
-  * <code bash>git log --oneline</code> 
-  * otros parámetros: 
-    * ''-p'' : muestra diferencias entre los commits 
-    * ''-<n>'' : muestra los n últimos commits 
-    * ''--stat'' : estadísticas (archivos modificados, líneas modificadas, etc) 
-    * ''--shortstat'' 
-    * ''name-only'' 
-    * ''name-status'' 
-    * ''relative-date'' 
-    * ''--pretty=format:"<consulta_tabla>"'' 
-      * [[https://git-scm.com/book/es/v2/Fundamentos-de-Git-Ver-el-Historial-de-Confirmaciones#rpretty_format|tabla configuración formato]] 
-    * ''--short'' 
-    * ''--full'' 
-    * ''--fuller'' 
-    * ''--abbrev-commit'' : muestra primeros caracteres del sha (en vez de los 40) 
-  * parametros limitar salida: 
-    * ''--since:''/''--after'' : acepta fechas concretas (2018-06-18) o relativas (2 years, months, days, hours) 
-    * ''--until:''/'''' 
-    * ''-S<cadena>'' : busca en los cambios la cadena (buscar una función/clase/atributo/comentario) 
- 
-== configuración 
-  * prioridad de los ficheros de configuración (más alta, más prioridad): 
-    - system: /etc/gitconfig 
-    - global: ~/.gitconfig 
-    - local: .git/config 
-  * establecer globalmente el usuario de trabajo: <code bash>git config [--global] user.name “mate”</code> 
-  * establecer globalmente el e-mail de trabajo:<code bash>git config [--global] user.email miemail@midominio.algo</code> 
-  * muestra la información almacenada y la ubicación del fichero: <code bash>git config --show-origin --get-all user.name</code> 
-  * comprobando la configuración: <code bash>git config --list</code> 
- 
- 
-== tags 
-alias a los commit, en lugar de su código 
-  * aplica el <tag> al actual: <code bash>git tag <tag></code> 
-  * <code bash>git tag <tag> <codigo_commit></code> 
-  * listado de tags: <code bash>git tag</code> 
-  * usar los tags para cambiar de //snapshot//: <code bash>git checkout <tag></code> 
- 
-== alias 
-  * <code bash>git config --global alias.cm ‘-c “user.name=matebcn” commit’</code> 
-/via: [[https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases]] 
- 
-== RESET 
-<callout type="warning" icon="true">atención a estos comandos, podrías perderlo todo</callout> 
- 
-  * no toca la working area: <code bash>git reset --soft</code> 
-  * borra staging area pero no working area: <code bash>git reset --mixed</code> 
-  * <label type="danger">CUIDADO!</label> lo borra todo: <code bash>git reset --hard</code> 
- 
- 
-== PTE 
-{{tag> pendiente wiki}} 
-<callout type="info" icon="true">pendiente de colocar de una manera más legible</callout> 
-<code> 
-push repositorios remotos 
-repositorio centralizado 
-al hacer un clone se establece como remoto 
-git remote add origin <direccion o directorio> → origin se suele usar en github para el repositorio 
-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 
-</code> 
-<code> 
-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 
- 
-</code> 
-== eclipse + bitbucket 
- 
-  * instalar nuevo software (repositorio) : ''http://download.eclipse.org/egit/updates'' 
-  * 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://crunchify.com/how-to-configure-bitbucket-git-repository-in-you-eclipse/]] 
  • development/git/start.1529319271.txt.gz
  • Darrera modificació: 18/06/2018 03:54
  • per mate