Herramientas de usuario

Herramientas del sitio


desarrollo:firmware:git

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

desarrollo:firmware:git [2014/09/22 14:10]
ppezoimburu Page moved from versiones:v1_0:firmware:git to desarrollo:firmware:git
desarrollo:firmware:git [2015/12/28 00:26] (actual)
dvommaro
Línea 1: Línea 1:
 ====== Tutorial de GIT ====== ====== Tutorial de GIT ======
  
- +Quien quiera realmente aprender ​GIT le recomendamos leer el libro oficial: [[http://git-scm.com/book/en/v2]]
-===== Descarga de Archivo comprimido (ZIP File) ===== +
-Si sólamente queremos descargar la última versión del repositorio,​ de manera rápida y simple, pero perdiendo todas las ventajas de trabajar con GIT, se puede descargar del [[https://​github.com/​ciaa/​Firmware| repositorio de Firmware en GitHub.]] un archivo comprimido con todo el contenido: +
-[[https://github.com/ciaa/Firmware/archive/​master.zip|CIAA_Firmware.zip]] +
- +
-o bien desde el repositorio +
-{{:​versiones:​v1_0:​Firmware:​GIT_Firmware_ZIP.png|Captura de la descarga.}}\\+
  
 ===== Descarga con GIT Shell (consola desde Windows) ===== ===== Descarga con GIT Shell (consola desde Windows) =====
Línea 21: Línea 15:
 Este punto nuestro Path debería ser C:​\CIAA>​. Pasamos a clonar el repositorio Este punto nuestro Path debería ser C:​\CIAA>​. Pasamos a clonar el repositorio
 <​code>​ <​code>​
-git clone https://​github.com/​ciaa/​Firmware+git clone --recursive ​https://​github.com/​ciaa/​Firmware.git
 </​code>​ </​code>​
  
-Si todo anduvo bien, a continuación deberíamos ver cómo progresa la descarga del repositorio. Una vez finalizada la descarga podemos ingresar a la carpeta Firmware que se ha creado con la copia local del repositorio ​+Es importante no olvidar la opción //​recursive//,​ ya que esta le indica a git que descargue los submódulos del repositorio. 
 +En caso de que no hayamos incluido la opción //​recursive//,​ debemos ejecutar: 
 +<​code>​ 
 +git submodule init 
 +git submodule update 
 +</​code>​ 
 + 
 +Si todo anduvo bien, a continuación deberíamos ver cómo progresa la descarga del repositorio. Una vez finalizada la descarga podemos ingresar a la carpeta Firmware que se ha creado con la copia local del repositorio
 + 
 <​code>​ <​code>​
 cd Firmware cd Firmware
Línea 34: Línea 36:
  
 Si todo anduvo bien veríamos algo como lo siguiente Si todo anduvo bien veríamos algo como lo siguiente
-{{:​versiones:​v1_0:​Firmware:​GIT_Firmware_Clone.png|Captura de los comandos mencionados.}}\\+{{GIT_Firmware_Clone.png|Captura de los comandos mencionados.}}\\
  
 Por último, si el repositorio se ha actualizado y queremos actualizar también nuestra copia local con estos cambios, hay que hacer un '​pull'​ del mismo una vez que nos encontremos en el path nuestra copia local, para el ejemplo '​C:​\CIAA\Firmware'​ Por último, si el repositorio se ha actualizado y queremos actualizar también nuestra copia local con estos cambios, hay que hacer un '​pull'​ del mismo una vez que nos encontremos en el path nuestra copia local, para el ejemplo '​C:​\CIAA\Firmware'​
Línea 42: Línea 44:
  
 Para este ejemplo, como recién acabamos de hacer una copia local el repositorio se encuentra actualizado. Caso contrario se actualizará con los cambios. Para este ejemplo, como recién acabamos de hacer una copia local el repositorio se encuentra actualizado. Caso contrario se actualizará con los cambios.
-{{:​versiones:​v1_0:​Firmware:​GIT_Firmware_Pull.png|Captura de los comandos mencionados.}}\\+{{GIT_Firmware_Pull.png|Captura de los comandos mencionados.}}\\
  
 Si hicimos algún cambio en la copia local podemos ver los cambios mediante el comando status: Si hicimos algún cambio en la copia local podemos ver los cambios mediante el comando status:
Línea 64: Línea 66:
 A continuación puede seguir el procedimiento mencionado para Windows, con las consideraciones del caso para crear/​moverse por los directorios. A continuación puede seguir el procedimiento mencionado para Windows, con las consideraciones del caso para crear/​moverse por los directorios.
  
 +====== Trabajando con branches ======
 +
 +El git tiene un branch llamado master que es el principal. Es una buena práctica que el master siempre este listo como para una posible release, por lo que salvo muy pequenios cambios siempre es importante trabajar en un branch.
 +
 +Para trabajar con branches lo primero es crear una:
 +
 +<​code>​
 +git branch branchname
 +</​code>​
 +
 +Luego se pueden listar los branches:
 +
 +<​code>​
 +server:​~/​ciaa/​Firmware2$ git branch -a
 +* block
 +  master
 +  modbus
 +  mybranch
 +  new_osek_port
 +  osek_mac
 +</​code>​
 +
 +El * indica el branch actual.
 +
 +Para cambiar de branches será necesario hacer:
 +
 +<​code>​
 +git checkout newbranch
 +</​code>​
 +
 +===== Realizar cambios =====
 +
 +Es importante no realizar cambios en el master a menos de no estar MUY seguro de lo que uno hace. Por favor hacerlo siempre sobre branches.
 +
 +Luego de editar uno o más archivos se puede utilizar el siguiente commando para ver el estado rel repoitorio:
 +
 +<​code>​
 +server:​~/​ciaa/​Firmware2$ git status
 +# On branch block
 +# Changes not staged for commit:
 +#   (use "git add <​file>​..."​ to update what will be committed)
 +#   (use "git checkout -- <​file>​..."​ to discard changes in working directory)
 +#
 +#​ modified: ​  ​modules/​posix/​inc/​ciaaBlockDevices.h
 +#​ modified: ​  ​modules/​posix/​src/​ciaaBlockDevices.c
 +#
 +# Untracked files:
 +#   (use "git add <​file>​..."​ to include in what will be committed)
 +#
 +# FLASH.BIN
 +no changes added to commit (use "git add" and/or "git commit -a")
 +</​code>​
 +
 +Para poder subir cambios al repo hay que primero utiliar el comando add
 +
 +<​code>​
 +git add modules/​posix/​inc/​ciaaBlockDevices.h
 +</​code>​
 +
 +y luego 
 +
 +<​code>​
 +git commit -m"#<​ticket>​ commentario"​
 +</​code>​
 +
 +Es una buena práctica no solo indicar un comentario sino el ticket por la cual se realiza el cambio.
 +
 +para no tener que hacer git add con cada archivo se puede tambien utilizar
 +
 +<​code>​
 +git add -u
 +</​code>​
 +
 +Una vez realizados los cambios los mismos se encuentran en el repo pero únicamente en la copia local. Para subir los mismos al servidor se debe utilizar el comando
 +
 +<​code>​
 +git push
 +</​code>​
 +
 +en el caso de ser un nuevo branch hay que indicar que uno quiere subirlo al servidor:
 +
 +<​code>​
 +git push origin branchname
 +</​code>​
 +
 +====== Trabajar sobre una release ======
 +A la hora de llevar a cabo trabajos o proyectos utilizando como plataforma el CIAA-Firmware se recomienda trabajar con la última release y no sobre la rama master del repositorio.
 +
 +Las releases se identifican con etiquetas o tags. Para conocerlas se debe ejecutar:
 +
 +<​code>​
 +server:​~/​ciaa/​Firmware$ git tag
 +0.0.1
 +0.2.0
 +0.3.0
 +0.3.0-rc1
 +0.3.0-rc2
 +0.4.0
 +0.4.1
 +0.5.0
 +0.6.0
 +0.6.1
 +0.7.0-alpha
 +1.0.0
 +KSKD_1.0.2
 +</​code>​
 +
 +Suponiendo que la última release correponde al tag 1.0.0 (como sucede en este caso), se procede de la siguiente manera:
 +
 +<​code>​
 +git checkout tags/1.0.0
 +git submodules update
 +</​code>​
 +
 +Listo! Todo configurado para trabajar sobre la última versión del CIAA-Firmware.
desarrollo/firmware/git.1411405809.txt.gz · Última modificación: 2014/09/22 14:10 por ppezoimburu