Git define un proceso de control de versiones sobre cómo se deben compartir los proyectos. Hay muchos sitios web que le permiten alojar sus proyectos Git. GitHub es la opción más popular, Bitbucket es otra alternativa popular, las cuales permiten cuentas gratuitas que pueden crear repositorios públicos o privados ilimitados. GitLab ofrece una alternativa autohospedada que permite el desarrollo privado sin depender del alojamiento de terceros.
El proceso de descargar inicialmente un repositorio de Git se llama clonación. La clonación incluye toda la información sobre el repositorio en ese momento; sin embargo, para mantener el repositorio actualizado a lo largo del tiempo, debe consultar las nuevas versiones. Para hacer esto, simplemente abra una ventana de terminal en el directorio con la versión local del repositorio y escriba el comando «git pull».
Este comando funciona de manera especialmente simple si solo desea descargar una versión actualizada del repositorio; la versión local se actualizará para que coincida con la versión remota. Sin embargo, es posible que surjan problemas si ha realizado cambios en su versión local.
El comando «git pull» en realidad ejecuta dos comandos separados «git fetch» y «git merge FETCH HEAD». El subcomando «git fetch» extrae específicamente la última versión del repositorio en línea y la almacena temporalmente. El subcomando «git merge FETCH HEAD» luego fusiona los cambios locales con la versión descargada, prefiriendo las confirmaciones más recientes.
Sugerencia: Un «git commit» es un envío de un cambio, es posible tener varios commits locales y remotos haciendo lo mismo o diferentes cosas. Las validaciones locales no son visibles para la versión remota hasta que se transmiten los cambios. Cada confirmación detalla exactamente qué cambios se realizaron e incluye una marca de tiempo.
Conflictos entre versiones locales y remotas
Idealmente, en un escenario de fusión, no habrá conflictos y el proceso de fusión finalizará automáticamente. Las fusiones pueden ser especialmente fáciles si se han realizado pocos cambios o si los cambios locales no interfieren con los cambios remotos. Sin embargo, si hay cambios complejos en conflicto en la misma parte del código, Git arrojará un error de combinación.
En este punto, puede cancelar la fusión con el comando «git merge –abort» o intentar resolver los conflictos manualmente. Los comandos «git mergetool» y «git diff» proporcionan un ejemplo gráfico de las diferencias que deberían hacer que sea lo más fácil posible ver los cambios que deben aplicarse manualmente para permitir que se complete la combinación. Una vez que haya resuelto todos los conflictos, escriba el comando “git merge –continue” para completar la combinación.
El comando «git mergetool» abrirá una herramienta gráfica como esta para ayudarlo a resolver conflictos manualmente.