GitDescripción y ventajas de
Git es la famosa plataforma de desarrollo. De hecho, se convierte en un estándar industrial debido a su principal ventaja: git permite trabajar en diferentes versiones del código fuente. La idea principal de la bifurcación es desviarse del código principal y continuar trabajando independientemente de él. También es conveniente para probar funcionalidades específicas porque permite trabajar en una nueva parte del código sin preocuparse de romper algo en la versión de producción. Describiremos cómo trabajar con git se ramifica más.
La rama es una secuencia independiente de confirmaciones, el último cambio aprobado es solo un "puntero" que guarda el historial de cambios como pasos, relacionados entre sí. Rama predeterminada generalmente llamada "principal" o "maestra".
Creación de sucursales
Antes de crear la nueva rama en modo consola, debes inicializar git instancia a través de este comando:
mkdir /root/gitrepo && cd /root/gitrepo && git init && touch firstfile && git add firstfile && git commit -m "initial commit"
Luego crea la rama misma:
git branch <new_branch_name>
Se ha creado la rama, pero debes "establecer" el puntero a esta rama antes de poder trabajar:
git checkout <created_branch_name>
Comprobemos que nuestra rama está realmente creada:
git branch
Enviar cambios a la sucursal
Hagamos algunos cambios en nuestro proyecto:
echo "First changes" > newfile.one
Luego confirme estos cambios:
git add newfile.one
git commit -m "First changes commit"
Comparar sucursales
Para ver las diferencias entre ramas use este comando:
git diff <one_branch>...<another_branch>
Veremos que se agregó un archivo, los permisos de este archivo y el mensaje de confirmación.
Ramas fusionándose
Para enviar cambios desde la rama de desarrollo a producción usaremos la función "fusionar". Simplemente vaya a la rama maestra, combínela con la rama que creamos y confirme nuestros cambios:
git checkout master && git merge mynewbranch && git commit -m "merges one"
Resolución de conflictos
Si dos ramas tienen un archivo con el mismo nombre pero contenido diferente, aparecerá un conflicto de fusión. Simulemos y resolvamos esta situación.
El siguiente paso crearé un nuevo archivo en dos ramas, haré cambios diferentes de este archivo en las ramas:
echo "original content" > conflict.file # Create new file
git add conflict.file # Add this file to the master branch's index
git commit -m "Conflict simulation - master, step 1" # Commit changes in the master branch
git checkout -b conflictbranch # Create new branch and checkout into
echo "changed content" > conflict.file # Change the file
git add conflict.file # Add this file to the other branch's index
git commit -m "Conflict simulation - conflictbranch, change 1" # Commit changes in the alternative branch
git checkout master # Go back to the master branch
echo "re-changed content" > conflict.file # Make changes again
git add conflict.file # Add this file to the master branch's index again. You should do this everytime, othervice an error will appear
git commit -m "Conflict simulation - master, step 2" # Commit last changes
Si intentamos fusionar estas ramas, veremos un error:
Para resolver el problema debemos editar el archivo mediante el editor. Después del símbolo de "flechas" podemos ver la rama donde se realizan los cambios:
Después de eso podemos fusionarnos exitosamente.
Eliminación de ramas
Para eliminar una rama debes usar este comando:
git branch -d <branch_name>
NOTA: No puedes eliminar la rama donde estás "quedando" ahora (primero debes verificar otra rama). Además, recibirá una advertencia si la rama tiene cambios no confirmados (se puede evitar mediante git rama -D) comando.
Conclusión
En esta instrucción se revelan los principales git ventajas y mostró algunas características de la rama base.