Git, como sabemos, es un sistema de control de versiones gratuito y de código abierto. En estos días, git se usa mucho y, por lo tanto, este artículo se centra en algunos de los trucos comunes de git que todo el mundo necesita en algún momento mientras trabaja con git o Github. A veces, el usuario comete algunos errores mientras trabaja en Git, lo que provoca la pérdida de información o la adición de información incorrecta.
Para superar este problema, Git proporciona algunos métodos/trucos para revertir o modificar los cambios que se hicieron mal o por error. Algunos de estos problemas junto con sus soluciones se enumeran a continuación:
Editar un mensaje de confirmación
A veces, al escribir el mensaje de confirmación, cometemos un error de tipeo. Los siguientes comandos se pueden utilizar para solucionar el problema. Tenga en cuenta que el siguiente comando crea una nueva confirmación, así que evite usar –amend para modificar confirmaciones que ya se han enviado a un repositorio central.
git commit --amend // start the editor to edit message git commit --amend -m"New message" // edit the commit message directly
Si olvida agregar un archivo mientras git add, simplemente agréguelo y modifique la confirmación anterior.
git add forgotten_file_name git commit --amend
Limpie las confirmaciones locales antes de empujar
–amend es muy útil para editar un mensaje de confirmación, pero no funcionará si la confirmación que desea realizar no es la última. En ese caso, se utiliza rebase .
git rebase --interactive // if you didn't specify any tracking information for this branch, // add upstream and remote branch information: git rebase --interactive origin branch
Esto dará el siguiente menú:
Verá una lista de opciones que puede usar para acceder a una vista donde puede editar el mensaje. Sin embargo, como se puede ver en la lista anterior, las reorganizaciones interactivas ofrecen mucho más que la simple edición de mensajes de confirmación: puede eliminar confirmaciones por completo eliminándolas de la lista, así como editarlas, reordenarlas y aplastarlas. Squashing le permite fusionar varias confirmaciones en una antes de enviarlas al control remoto.
Deshacer las confirmaciones locales
A veces nos damos cuenta de que hay algún error, pero en ese momento algunos de los cambios se han confirmado localmente.
git reset HEAD-2 // undo last 2 commits and keep changes git reset --hard HEAD-2 // undo last two Commits,discard changes
Eliminar un archivo de GIT sin eliminarlo del sistema de archivos
Si no tiene cuidado, puede agregar algunos archivos innecesarios durante git add.
Si intenta usar git rm, eliminará el archivo tanto del área de preparación como del sistema de archivos.
git reset filename // or git remove --cached filename echo filename >> .gitignore // add it to .gitignore to avoid re-adding it
Este comando elimina solo la versión preparada y agrega el archivo a su archivo . gitignore para evitar volver a cometer el mismo error.
Revertir confirmaciones enviadas
A veces, las confirmaciones defectuosas llegan al repositorio central incluso después de modificar y reorganizar. Por lo tanto, puede usar los siguientes comandos
git revert c761f5c // reverts the commit with the specified id git revert HEAD^ // reverts the second to last commit git revert develop~4..develop~2 // reverts a whole range of commits
Sin embargo, si no desea crear confirmaciones de reversión adicionales sino solo aplicar los cambios necesarios a su árbol de trabajo, puede usar la opción –no-commit/-n .
git revert -n HEAD
Evite conflictos de fusión repetidos
Arreglar conflictos de fusión repetidamente es realmente molesto.
Suponga que su equipo está trabajando en varias ramas de características al mismo tiempo. Ahora desea fusionarlos todos juntos. Hay varios conflictos de fusión, que usted resuelve. Pero resulta que una de las ramas aún no está del todo allí, por lo que decide deshacer la fusión nuevamente. Después de unos días, cuando la rama finalmente está lista, la vuelve a fusionar, pero gracias a las resoluciones registradas, no tendrá que resolver los mismos conflictos de fusión nuevamente.
// Add it to your global config to enable it for all projects git config --global rerere.enabled true
Encuentre un compromiso que rompió algo después de una fusión
A veces es necesario encontrar un compromiso que cambió el proyecto de forma incorrecta. Este compromiso incorrecto es difícil de encontrar y, por lo tanto, consume mucho tiempo. Git ha introducido un método para encontrar este compromiso que rompió algo después de la fusión:
git bisect start // starts the bisecting session git bisect bad // marks the current revision as bad git bisect good revision // marks the last known good revision Now, git will automatically checkout a revision halfway between the known “good” and “bad” versions. git bisect good // OR git bisect bad
Publicación traducida automáticamente
Artículo escrito por tanujajoshi24 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA