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 primero un repositorio de Git se llama clonación. La clonación incluye toda la información sobre el repositorio en este momento, sin embargo, para mantener el repositorio actualizado con el tiempo, debe descargar 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».
El funcionamiento de este comando es particularmente sencillo si simplemente desea descargar una versión actualizada del repositorio; la versión local se actualizará para que coincida con la versión remota. Sin embargo, puede notar que pueden surgir 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 a la versión descargada, prefiriendo las confirmaciones más recientes.
Sugerencia: un «git commit» está enviando un cambio, puede tener múltiples commits locales y remotos haciendo lo mismo o diferentes cosas. Las confirmaciones locales no son visibles para la versión remota hasta que se envían los cambios. Cada confirmación especifica exactamente qué cambios se han realizado 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 se completará automáticamente. Las fusiones pueden ser particularmente 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 conflictivos 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 ayudar a que sea lo más fácil posible ver qué cambios deben aplicarse manualmente para permitir que se complete la fusión. Después de resolver todos los conflictos, escriba el comando «git merge –continue» para completar la combinación.