Apuntes de Git
Hacer un merge
- Asegúrate de completar todas las tareas para dejar lista la rama que vas a fusionar
- Asegúrate de cambiár a la rama receptora (
git checkout
) y de que estás en ella (git status
) - Actualiza la rama receptora con el remote (puedes usar
git fetch
ygit pull
) - Ejecuta el merge con
git merge
Borrar submódulo
La forma correcta de hacerlo, conservando el contenido del módulo si es necesario.
|
|
Clonar cuando hay submódulos
La opción -jn
asigna n recursos para las tareas de clonado.
|
|
Deshacer un amend
Siempre y cuando no la hayas pifiado ya en la historia compartida.
|
|
La primera orden mueve el HEAD a donde estaba apuntando el commit antiguo. Además dejamos el index intacto para poder hacer otra vez un commit con los cambios pendientes.
HEAD@{1}
nos da el commit al que HEAD estaba apuntando antes de apuntar al que está apuntando (léelo un par de veces más). No es lo mismo que HEAD~1
que devuelve el commit padre del commit al que está apuntando HEAD.
La segunda sentencia es más retorcida. Significa: haz un commit del tree actual, usando los detalles del commit erroneo. Fíjate que HEAD@{1}
ahora apunta al commit erróneo, puesto que apunta al commit al que apuntaba HEAD antes de apuntar a donde apunta ahora mismo.
Revert a un commit previo
Detached Head
|
|
¡Ojo! ahora mismo estás en un detached head es decir no estás en ningún branch. Si haces cambios en el commit <old-commit-hash>
vas a tener muchos problemas. Antes de hacer cambios puedes crear una nueva rama:
|
|
O volver a donde estabas con git checkout
Con una rama
Si quieres hacer cambios es lo más recomendable:
|
|
A fuego (quemando las naves)
Si no tienes nada en la historia compartida puedes hacer reset:
|
|
Si ya has compartido la historia tendrás que trabajar con revert.
Esta también es la forma más segura y recomendable si quieres conservar la historia completa:
|
|
El flag --no-commit
permite hacer un revert de todos los commits de un golpe, si no lo pasas hará un nuevo commit por cada commit “revertido” y la historia va a quedar un poco enrevesada.
Cambiar el nombre a una rama
En Gitlab hay que usar main en lugar de master.
|
|
Crear una nueva rama
|
|
Hay otras alternativas:
|
|
Borrar un fichero con información sensible de la historia del repo
Usando solo git
|
|
Usando git-filter-repo
Es una herramienta escrita en Python (ver github)