Diferencia entre revisiones de «PDM UD1 Control Versions»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 20: Línea 20:
 
: Indicar que na versión gratuíta, os proxectos subidos á plataforma son de acceso público.
 
: Indicar que na versión gratuíta, os proxectos subidos á plataforma son de acceso público.
 
: Teremos que facer un pequeno pagamento para ter un aloxamento privado.
 
: Teremos que facer un pequeno pagamento para ter un aloxamento privado.
 +
 +
  
  
 
<br />
 
<br />
−
 
 
=Instalando Git=
 
=Instalando Git=
  
 
<gallery caption="Instalando Git" widths="350" heights="300px" perrow="2">
 
<gallery caption="Instalando Git" widths="350" heights="300px" perrow="2">
 
Image::PDM_Git_1B.jpg | Nos vamos a la [https://git-scm.com/download/ página de descarga de Git] y escogemos la plataforma correspondiente.
 
Image::PDM_Git_1B.jpg | Nos vamos a la [https://git-scm.com/download/ página de descarga de Git] y escogemos la plataforma correspondiente.
−
Image:PDM_Git_1C.jpg | Dejamos todas las opciones por defecto durante la instalación menos la del editor de texto, que podremos escoger uno de los que está en la lista si lo tenemos instalado o bien dejar la opción del editor 'Nano'.
+
Image:PDM_Git_1C.jpg | Deixamos todas as opcións por defecto durante a instalación, salvo o editor de texto, onde podemos elixir un da lista se o temos instalado ou deixamos a opción de editor "Nano".
 +
Image:PDM_Git_4B.jpg | Debemos de saber cal é a ruta de instalación de Git e localizar o arquivo git.exe (ou git en Linux)
 +
Image:PDM_Git_5B.jpg | Debemos ir á configuración do Android Studio e cambiar a entrada de Git introducindo a ruta ao executable.
 +
Image:PDM_Git_6.jpg | Agora debemos de crear un repositorio Git. Poderíamos crealo directamente en GitHub, pero o facemos así para que vexades que pode facerse independentemente.
 +
Image:PDM_Git_7.jpg | Seleccionaremos o cartafol raíz do noso proxecto Android.
 +
Image:PDM_Git_8.jpg | Se vos aparece esta ventá, indica que hai un arquivo que
 +
Image:PDM_Git_9.jpg | En Android xéranse moitos arquivos dos cales non é necesario ter unha copia deles nas diferentes versións que se crean con Git. Un exemplo moi claro son os arquivos apk (as aplicacións preparadas para ser instaladas). Estes e outros arquivos poden ser indicados no arquivo '''.gitignore''' como se amosa na imaxe.
 +
Image:PDM_Git_10_a.jpg | Podemos ir a páxina https://www.gitignore.io/ e buscar pola palabra AndroidStudio. Premendo no botón '''Create''' aparecerá o contido que temos que copiar en AndroidStudio.
 +
Image:PDM_Git_10.jpg | Borramos todo o contido que haia e pegamos o contido xerado no paso anterior.
  
 
</gallery>
 
</gallery>
  
  
 +
 +
<br />
 +
=Utilizando Git=
 +
 +
* Git é un programa de control de versións que non ten nada que ver con GitHub.
 +
: Podemos ter Git sen utilizar GitHub.
 +
 +
: Nese caso, teríamos unha forma de levar diferentes versións do programa no noso computador.
 +
 +
<gallery caption="Usando Git" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_10_b.jpg | No paso anterior creamos un repositorio Git y podemos apreciar como os arquivos pasan a ter unha cor 'marrón' ou 'vermella'. Isto indica que ditos arquivos non foron engadidos ao repositorio.
 +
Image:PDM_Git_10_c.jpg | Cando traballamos con Git, imos ter que facer sempre dous pasos: Engadir os novos arquivos ao repositorio e confirmar ditos arquivos. O primeiro paso se pode facer premendo o botón dereito sobre o raíz do noso proxecto e seleccionando a opción '''Git''' => '''Add'''. Con isto os arquivos pasan a ter unha cor 'verde'. A cor verde significa que están engadidos ao repositorio pero <u>non están confirmados</u>.
 +
Image:PDM_Git_10_d.jpg | Para confirmar os cambios repetimos a operación anterior pero esta vez escollemos a opción '''Commit Directory'''.
 +
Image:PDM_Git_12.jpg | É neste paso onde se van a gardar os arquivos. Por iso podemos escribir unha descrición dos cambios gardados no repositorio. Prememos o botón '''Commit'''.
 +
Image:PDM_Git_11.jpg | Os pasos anteriores tamén se poden facer dende unha ventá específica para traballar con Git, na parte baixa de Android Studio, premendo no botón '''Control Version''' (no Status Bar). Se vos aparece unha ventá informando de que algúns arquivos teñen problemas, ignoralos e premer 'Commit'. Ao facelo podedes comprobar como os arquivos deixan de estar en cor verde.
 +
</gallery>
  
  
  
  
 +
<br />
  
 +
=Utilizando GitHub=
  
 +
<gallery caption="Usando GitHub" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_15.jpg | Ides a https://github.com e vos creades unha conta se non a tedes. Unha vez dados de alta, podedes crear un novo repositorio,
 +
Image:PDM_Git_16.jpg | Dádeslle un nome ao repositorio.
 +
Image:PDM_Git_17.jpg | Copiaremos no portapapeis a ruta do repositorio.
 +
Image:PDM_Git_20_a.jpg | Imos ao menú VCS => Git => Remote.
 +
Image:PDM_Git_20.jpg | Prememos o máis e engadimos un novo repositorio ao Android Studio, pegando a URL copiada no paso anterior.
 +
Image:PDM_Git_50_u1.jpg | Como os cambios xa os temos confirmados (fixemos Commit antes) para subilos ao servidor escollemos ao opción de menú '''VCS => Git => Push'''.
 +
Image:PDM_Git_23.jpg | Se nos informa que 'Commit' é o que imos a subir ao servidor cos arquivos que se van subir.
 +
Image:PDM_Git_20_b.jpg | Pedirá o usuario/password de '''GitHub'''.
 +
Image:PDM_Git_25.jpg | Unha vez subido xa podemos comprobar dende o navegador como o proxecto se atopa en GitHub.
 +
</gallery>
  
  
  
 +
<br />
 +
=Versións/Ramas en Git=
  
 +
* Git vai gardando todas as versións dos diferentes 'commits' que se fan ao longo do desenvolvemento do proxecto. Desta forma sempre se poden consultar as versións anteriores e ver os cambios feitos.
 +
 +
* Ademais Git permite facer uso de 'ramas' ou '''Branch'''. Cada rama ven ser unha versión nova dun proxecto.
 +
: Podemos ter cantas ramas queiramos e facer ramas de outras creadas previamente.
 +
 +
* Non contorno de desenvolvemento de varios usuarios, unha solución típica é ter unha rama para cada usuario e unha rama principal onde se vaian engadindo as modificacións feitas.
 +
 +
* Git ten unha rama inicial de nome '''Master'''. Podedes vela tanto en AndroidStudio como en GitHub:
 +
<gallery caption="Branch en AndroidStudio(Git) / GitHub" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_25_a.jpg | '''Branch seleccionada''' en AndroidStudio.
 +
Image:PDM_Git_25_b.jpg | Branch en GitHub.
 +
</gallery>
 +
 +
* Cando facemos modificación e <u>realizamos un commit</u> o estamos a facer sobre a rama activa.
 +
 +
* Imos simular que somos dous usuarios. O usuario 2 vai ter un rama e o usuario 1 outra.
 +
 +
 +
<gallery caption="Creando branch nova" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_32_u2.jpg | No Status Bar, prememos sobre Branch Master e creamos unha nova.
 +
Image:PDM_Git_32_u1.jpg | Damos un nome a nova Branch.
 +
Image:PDM_Git_32_b_u1.jpg | Podemos comprobar como a rama activa é a creada.
 +
Image:PDM_Git_50_u1.jpg | Agora necesitamos facer un Push ao servidor de GitHub.
 +
Image:PDM_Git_32_c_u1.jpg | No GitHub podemos cambiar de rama en calquera momento.
 +
</gallery>
 +
 +
* Neste punto todos os cambio que faga o Usuario 1 en Android Studio se gardará na rama activa actual (neste caso 'Rama_Usuario_1).
 +
: Veremos a continuación como pasar eses cambios á rama Master.
 +
 +
 +
 +
<br />
 +
=Múltiples usuarios traballando en Git/GitHub=
 +
 +
* Na sección anterior quedamos en que un usuario (Usuario1) crea unha rama a partires da rama Master de nome Rama_Usuario_1.
 +
 +
* Agora imos partir de que un usuario novo (Usuario2) vai facer uso do mesmo proxecto, creándose unha rama para traballar el.
 +
 +
 +
* <u>Nota Importante:</u> Se estades en Windows e o usuario que vai a iniciar o AndroidStudio non é administrador vos dará erros debido a que non terá permisos para facer cambios no cartafol do Android Studio ou no SDK se ten que descargar algunha sdk-tools. A forma máis sinxela de arranxalo é executando o Android Studio como administrador (premer botón dereito do rato sobre a icona do AndroidStudio).
 +
 +
 +
<gallery caption="Usuario 2: Facendo uso de Git/GitHub/Branch" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_26_u2.jpg| O usuario 2 vai abrir un proxecto que xa se atopa creado en GitHub.
 +
Image:PDM_Git_27_u2.JPG| Escolle o sistema de autentificación por Password e introduce o usuario/password de GitHub (o mesmo que o do Usuario 1).
 +
Image:PDM_Git_28_u2.JPG| Enchemos os datos acerca de onde se vai a garda en local.
 +
Image:PDM_Git_29_u2.JPG| Debería aparecer o proxecto de GitHub.
 +
Image:PDM_Git_30_u2.JPG| Se vos da algún erro ('''ou se non, vos dará despois :) ), comprobade que na ventá da estructura do proxecto estea seleccionada algunha versión das 'Builds Tools'.
 +
Image:PDM_Git_32_u2.jpg| Creamos unha nova rama para este usuario.
 +
Image:PDM_Git_33_u2.JPG| Damos un novo á nova rama.
 +
Image:PDM_Git_34_u2.JPG| Podemos comprobar como a rama activa é Rama_Usuario_2
 +
Image:PDM_Git_35_u2.jpg| Creamos unha nova activity e facemos o commit (xa visto como facelo anteriormente)
 +
Image:PDM_Git_36_u2.JPG| Como os datos de GitHub non están gardados nos pide o usuario e correo do usuario que vai subir os datos ao servidor. Se vos da algún aviso premede o botón de 'Commit'.
 +
Image:PDM_Git_37_u2.JPG| Nos informa que arquivos serán subidos ao servidor.
 +
Image:PDM_Git_38_u2.JPG| Agora no servidor aparece a rama de cada usuario.
 +
 +
</gallery>
 +
 +
 +
 +
* <u>'''MOI IMPORTANTE:'''</u> Se seguides este esquema de ter a rama Master como rama onde se van gardando os datos modificados, é necesario que cando empezedes a traballer descargues á vosa rama os cambios que se atopan na rama Master.
 +
 +
Para iso tedes que seguir estes pasos:
 +
<gallery caption="Actualizando ramas" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_57_a_u1.JPG| Nos situamos sobre a rama na que queremos incorporar os cambios.
 +
Image:PDM_Git_58_u2.jpg| Escollemos a opción de menú '''VCS => Git => Pull'''.
 +
Image:PDM_Git_59_u2.JPG| Marcamos a/as ramas que queremos unir. Neste caso a Master.
 +
Image:PDM_Git_60_u2.JPG| Xa temos os arquivos unidos coa rama Master. Fixerse que están en verde. Iso sinifica que todavía no están gardados na rama actual (Rama_Usuario_2). Cando rematemos teremos que facer un commit á nosa rama e gardar as modificacións na rama Master como se indica a continuación.
 +
</gallery>
 +
 +
 +
<br />
 +
 +
* Agora supoñamos que calquera dos dous usuarios (no exemplo é o usuario 1) fai modificacións na súa rama e quere gardalas na rama Master (a maiores de na del).
 +
 +
<gallery caption="Usuario 1: Facendo uso de Git/GitHub/Branch" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Git_40_u1.jpg| O usuario 1 <u>na súa rama</u> crea unha nova activity.
 +
Image:PDM_Git_41_u1.jpg | Facemos un commit and push para subilo ao servidor ao mesmo tempo.
 +
Image:PDM_Git_42_u1.jpg | Podemos comprobar como en GitHub aparecen os cambios.
 +
Image:PDM_Git_49_a_u1.jpg | Debemos cambiar a rama activa á rama na que queremos gardar os cambios feitos. Neste caso Master. Escolleremos a opción '''Checkout''' na sección de 'Local Branches'
 +
Image:PDM_Git_49_u1.jpg | Agora debemos escoller a opción '''Merge''' sobre a rama de onde veñen os cambios. Isto modificará o repositorio local.
 +
Image:PDM_Git_50_u1.jpg | Subimos os cambios ao servidor.
 +
Image:PDM_Git_53_u2.jpg | Se houbera conflitos entre os arquivos aparecerá unha ventá na que por cada arquivo debemos seleccionar a opción '''Merge'''. Isto vai pasar en arquivos nos que hai diferente contido. Explicado posteriormente.
 +
Image:PDM_Git_51_u1.jpg | Agora a rama Master está modificada.
 +
Image:PDM_Git_54_u2.jpg | Se houbera conflitos, por cada arquivo aparecerá unha ventá como a seguinte. Na parte central se indica como quedará o arquivo tras a unión (merge). Podemos editalo manualmente. Neste caso, na parte esquerda había unha liña (Main2Activity_User2) que se engadira ao arquivo AndroidManifiest.xml onde se indica que nese proxecto se creara unha activity. Ese problema xa foi resolto (se vos fixades, esa liña xa está engadida á parte central). Como se solucionan os conflitos ? Unha forma é premer ma dobre frecha no que se indica o conflito (mirar a parte dereita) e con iso engadimos dita liña á solución.
 +
</gallery>
  
  

Revisión actual del 16:30 24 sep 2019

Introdución

  • Ás veces pode ser necesario traballar como equipo con outras persoas ou traballar en diferentes lugares.
  • Para xestionar eses proxectos, Android Studio integra un software que permite gravar un historial de modificacións dos proxectos, ter diferentes versións nas que os diferentes usuarios poden traballar e fusionalas máis tarde.
Entre ese software temo:


  • Neste punto, aplicarás as bases para traballar con Git.
Esta entrada non é un manual completo do uso deste software, só serve para mostrar o máis básico, podendo chegar a facer moitas máis operacións.
  • Debemos distinguir Git con GitHub.
GitHub é un sitio web que usa o software Git para controlar as versións dos seus proxectos.
Veremos como gardar os proxectos nesa plataforma.
Indicar que na versión gratuíta, os proxectos subidos á plataforma son de acceso público.
Teremos que facer un pequeno pagamento para ter un aloxamento privado.




Instalando Git



Utilizando Git

  • Git é un programa de control de versións que non ten nada que ver con GitHub.
Podemos ter Git sen utilizar GitHub.
Nese caso, teríamos unha forma de levar diferentes versións do programa no noso computador.




Utilizando GitHub



Versións/Ramas en Git

  • Git vai gardando todas as versións dos diferentes 'commits' que se fan ao longo do desenvolvemento do proxecto. Desta forma sempre se poden consultar as versións anteriores e ver os cambios feitos.
  • Ademais Git permite facer uso de 'ramas' ou Branch. Cada rama ven ser unha versión nova dun proxecto.
Podemos ter cantas ramas queiramos e facer ramas de outras creadas previamente.
  • Non contorno de desenvolvemento de varios usuarios, unha solución típica é ter unha rama para cada usuario e unha rama principal onde se vaian engadindo as modificacións feitas.
  • Git ten unha rama inicial de nome Master. Podedes vela tanto en AndroidStudio como en GitHub:
  • Cando facemos modificación e realizamos un commit o estamos a facer sobre a rama activa.
  • Imos simular que somos dous usuarios. O usuario 2 vai ter un rama e o usuario 1 outra.


  • Neste punto todos os cambio que faga o Usuario 1 en Android Studio se gardará na rama activa actual (neste caso 'Rama_Usuario_1).
Veremos a continuación como pasar eses cambios á rama Master.



Múltiples usuarios traballando en Git/GitHub

  • Na sección anterior quedamos en que un usuario (Usuario1) crea unha rama a partires da rama Master de nome Rama_Usuario_1.
  • Agora imos partir de que un usuario novo (Usuario2) vai facer uso do mesmo proxecto, creándose unha rama para traballar el.


  • Nota Importante: Se estades en Windows e o usuario que vai a iniciar o AndroidStudio non é administrador vos dará erros debido a que non terá permisos para facer cambios no cartafol do Android Studio ou no SDK se ten que descargar algunha sdk-tools. A forma máis sinxela de arranxalo é executando o Android Studio como administrador (premer botón dereito do rato sobre a icona do AndroidStudio).



  • MOI IMPORTANTE: Se seguides este esquema de ter a rama Master como rama onde se van gardando os datos modificados, é necesario que cando empezedes a traballer descargues á vosa rama os cambios que se atopan na rama Master.

Para iso tedes que seguir estes pasos:



  • Agora supoñamos que calquera dos dous usuarios (no exemplo é o usuario 1) fai modificacións na súa rama e quere gardalas na rama Master (a maiores de na del).











-- Ángel D. Fernández González -- (2018).