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
info:cursos:git [16/07/2018 03:17] – [cambios en ficheros] mateinfo:cursos:git [08/08/2018 02:47] (actual) – [.gitignore] mate
Línia 1: Línia 1:
-= git += git (git-book) 
-{{tag>devops cursos}}+{{tag>devops cursos git}} 
 +~~NOTOC~~
  
 == info == info
Línia 8: Línia 9:
  
 == metodología de trabajo en Git == metodología de trabajo en Git
-=== estados+=== áreas
 <image shape="thumbnail">{{ :development:git:pasted:20180606-133803.png }}</image> <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>**   * 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>**
Línia 29: Línia 30:
   * añadir todos los ficheros: <code bash>git add -A</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>   * 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>+  * crear un commit (envío/paquete/snapshot):<code bash>git commit -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>   * 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>   * 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>   * 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>+  * enviar commit a repositorio nube (**-u** setea el upstream de esta rama para futuros usos):<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>   * clonar repositorio nube existente en local (se establece ORIGIN de manera automática):<code bash>git clone <dirección repositorio git></code>
  
Línia 48: Línia 49:
   * eliminar fichero: <code bash>rm <archivo>   * eliminar fichero: <code bash>rm <archivo>
 git rm <archivo></code> git rm <archivo></code>
-  * eliminar del área de trabajo (pero no del //working tree//): <code bash>git rm --cached <archivo></code> +  * eliminar del indice (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+ 
 +=== .gitignore 
 +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 *.a
  
Línia 67: Línia 70:
 doc/**/*.txt doc/**/*.txt
 </code> </code>
 +se puede crear un fichero para ignorar a nivel global (por la tesitura del equipo y los programas usados):<code bash>git config --global core.excludesFile ~/.gitignore</code>
 +se puede ubicar en cualquier sitio, en este caso lo situan en el $HOME del usuario
 +
 +<callout type="info" title="+ info" icon="true">https://www.atlassian.com/git/tutorials/saving-changes/gitignore</callout>
 +
 +=== restaurar
 +==== stage
 +  * ''git reset'' : elimina **stage** y lo pasa a **working**
 +    * ''git reset <file>''
 +
 +<callout type="danger">''git reset --hard'': elimina todas las modificaciones del **stage** y **working** (menos untracked)</callout>
 +
 +==== working area
 +<callout type="danger">''git checkout -- %%<file%%>'': Elimina los cambios en el fichero del **working copy** </callout>
 +<callout type="danger">''git checkout %%<folder%%>'': Elimina los cambios en el directorio del **working copy** </callout>
 +<callout type="danger">''git checkout .'': Elimina los cambios en **TODO** el **working copy**</callout>
 +
 +==== fichero untracked
 +<callout type="danger">''git clean -f'': Elimina los ficheros **untracked**</callout>
 +<callout type="danger">''git clean -fd'': Elimina los ficheros **untracked** de raiz y directorios</callout>
 +<callout type="danger">''git clean -id'': clean interactivo</callout>
  
 === con remotos === con remotos
Línia 90: Línia 114:
   * ''git remote rm <remoto>'': eliminar un remoto   * ''git remote rm <remoto>'': eliminar un remoto
  
-== Tagear+=== Tags 
 +  * etiquetas ligeras: alias a los commit, en lugar de su código 
 +  * etiquetas anotadas: crean un nuevo //snapshot// guardando toda una serie de información: 
 +    * nombre 
 +    * correo electrónico 
 +    * fecha 
 +    * gpg checksum 
 + 
   * ''git tag'': mostrar las etiquetas   * ''git tag'': mostrar las etiquetas
-    * ''-l <patrón>'' +    * ''-l <patrón>'' : patrón de filtrado 
-  * ''git tag -a vX.x'' +  * ''git tag -a vX.x'' : aplica el tag al HEAD ? 
-    * ''-m'': mensaje de la etiqueta +    * ''-a'' : etiqueta anotada 
-  * ''git show <tag>'' +    * ''-m'': mensaje de la etiqueta (obligatorio en etiquetas anotadas) 
-  * ''git tag vX.x-lw'': checksum de un commit guardado a un archivo (no usar ni ''-a'', ''-s'', ''-m'')+  * ''git show <tag>'' : información adicional de las etiquetas anotadas 
 +  * ''git tag vX.x-lw'': etiqueta ligera (no usar ni ''-a'', ''-s'', ''-m'')
     * si se hace ''git show <tag>'' no se mostrará información adicional     * si se hace ''git show <tag>'' no se mostrará información adicional
   * ''git tag -a vX.x <checksum>'': etiquetar a posteriori un commit, indicando los primeros caracteres   * ''git tag -a vX.x <checksum>'': etiquetar a posteriori un commit, indicando los primeros caracteres
   * ''git push origin <etiqueta>'': las etiquetas no se envían a los servidores remotos, hay que especificarlo explicitamente   * ''git push origin <etiqueta>'': las etiquetas no se envían a los servidores remotos, hay que especificarlo explicitamente
     * ''git push origin --tags'': envía varias etiquetas a la vez     * ''git push origin --tags'': envía varias etiquetas a la vez
 +  * ''git checkout -b <rama> <tag>'' : crear una rama a partir de un tag
 +
 +<callout type="primary" icon="true"> https://git-scm.com/book/es/v2/Fundamentos-de-Git-Alias-de-Git </callout>
  
-<callout type="primary" icon="true"> https://git-scm.com/book/es/v2/Fundamentos-de-Git-Etiquetado </callout>+=== reescribiendo la historia (rebase) 
 +  * [[https://git-scm.com/book/es/v1/Las-herramientas-de-Git-Reescribiendo-la-historia]] 
 +  * [[https://git-scm.com/book/es/v2/Ramificaciones-en-Git-Reorganizar-el-Trabajo-Realizado]]
  
  
Línia 115: Línia 153:
 $ git commit --amend $ git commit --amend
 # solo se mostraría un commit</code> # solo se mostraría un commit</code>
 +
 +=== 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>
  
  
Línia 138: Línia 183:
     * ''--until:''/''''     * ''--until:''/''''
     * ''-S<cadena>'' : busca en los cambios la cadena (buscar una función/clase/atributo/comentario)     * ''-S<cadena>'' : busca en los cambios la cadena (buscar una función/clase/atributo/comentario)
 +
 +=== 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]]
 +
 ++info: [[https://github.com/GitAlias/gitalias]]
  
 == configuración == configuración
Línia 150: Línia 201:
  
  
-== 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> 
  
  
  • info/cursos/git.1531736237.txt.gz
  • Darrera modificació: 16/07/2018 03:17
  • per mate