PDM UD1 Control Versions
Sumario
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
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.
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.
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.
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 non están confirmados.
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.
Utilizando GitHub
Ides a https://github.com e vos creades unha conta se non a tedes. Unha vez dados de alta, podedes crear un novo repositorio,
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).
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.
-- Ángel D. Fernández González -- (2018).