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 [2015/01/22 01:10]
gmuro Eliminación de descarga del código como un archivo zip (no funciona ya que no descarga los submódulos)
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 con GIT Shell (consola desde Windows) ===== ===== Descarga con GIT Shell (consola desde Windows) =====
Línea 16: Línea 18:
 </​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 56: 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.1421899848.txt.gz · Última modificación: 2015/01/22 01:10 por gmuro