Git define un proceso de control de versiones sobre cómo se deben compartir los proyectos. Existen muchos sitios web que le permiten alojar sus proyectos Git. GitHub es la opción más popular, Bitbucket es otra alternativa popular, ambos 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 para descargar primero 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 extraer nuevas versiones. Para hacerlo, 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 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 vea que podría haber problemas si ha realizado modificaciones 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 versión más reciente del repositorio en línea y la almacena temporalmente. El subcomando "git merge FETCH HEAD" luego fusiona sus cambios locales con la versión descargada, siendo preferibles las confirmaciones más recientes.
Sugerencia: un "git commit" es un envío de un cambio, es posible tener múltiples confirmaciones locales y remotas que hacen 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 detalla exactamente qué cambios se realizaron e incluyen 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 realizaron 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 ayudar a que sea lo más fácil posible ver qué cambios deben aplicarse manualmente para permitir que se complete la fusió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.