10 técnicas avanzadas de Git - KDnuggets

10 técnicas avanzadas de Git – KDnuggets

Nodo de origen: 3083811

10 técnicas avanzadas de Git
Imagen del autor
 

¿Alguna vez te has preguntado qué podrías hacer para parecer un profesional frente a tu gerente cuando usas Git? En esta publicación, aprenderemos alrededor de 10 técnicas avanzadas y atajos de Git que lo harán más eficiente al controlar versiones, mantener y compartir código.

Probablemente ya conozcas los conceptos básicos de commit, push, pull y bifurcación con Git. Pero hay muchos comandos y funciones menos conocidos que pueden mejorar tus habilidades. Después de leer esto, tendrás algunos trucos ingeniosos bajo la manga para impresionar a tus compañeros de trabajo con tu dominio de Git.

Ha agregado y confirmado los archivos de esta manera varias veces, pero ¿qué pasa si le digo que se puede hacer en una línea con el indicador `-am`? 

$ git add .
$ git commit -m "new project"

 

Pruebe esto en su lugar, agregará los cambios del archivo y creará la confirmación usando el mensaje. 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

Puede cambiar el nombre de su mensaje de confirmación actual usando el indicador `–amend` y escribir el nuevo mensaje. Esto le ayudará con los mensajes accidentales.

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

Puede incluir cambios adicionales en la confirmación actual antes de enviarla al repositorio remoto. Para hacerlo, debe agregar los cambios del archivo y luego confirmar usando el indicador `–amend`. Para conservar el mensaje de confirmación anterior, simplemente use el indicador `–no-edit`.

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

Si desea impulsar una confirmación local y anular el historial remoto sin tener que resolver problemas, puede usar el indicador `–force`. Sin embargo, es importante tener en cuenta que no se recomienda usar el indicador de fuerza y ​​solo debe usarse cuando esté absolutamente seguro de lo que está haciendo. Tenga en cuenta que el uso del indicador de fuerza reescribirá el historial remoto.

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

Para deshacer una confirmación en Git, puede usar el comando `revertir`. Sin embargo, este comando no elimina ninguna confirmación. En cambio, crea una nueva confirmación que deshace los cambios realizados por la confirmación original.

Usaremos el `log` con el indicador `–oneline` para ver el historial de confirmaciones en una forma más breve. 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

Para volver a una confirmación anterior, usamos el comando `git revert` seguido del ID de confirmación. Esto crea una nueva confirmación con los cambios de la confirmación anterior.

$ git revert 8f184d5

¿Quieres aumentar tu productividad en GitHub? Con GitHub Code Spaces, ahora puedes editar y ejecutar tu código directamente en tu navegador. 

Para acceder a esta función, simplemente navegue hasta su repositorio favorito, presione la tecla de punto (“.”) en su teclado y lo redirigirá a la interfaz de usuario de VSCode.

 

10 técnicas avanzadas de Git
Imagen del autor
 

Puede realizar cambios en el código y enviarlos a su repositorio remoto. Sin embargo, si desea ejecutar el código en la terminal, debe ejecutar Codespace en la nube. La versión gratuita ofrece una excelente opción para ejecutar su código Python en su navegador. ¿No es increíble? Me acabo de enterar hoy.

 

10 técnicas avanzadas de Git
Imagen del autor

Cuando trabaja en un proyecto, puede agregar archivos a un área de preparación y luego confirmarlos para guardar su progreso actual. Sin embargo, existe otra forma de guardar su trabajo fácilmente usando el comando `stash`. Cuando usas `stash`, guardas tu progreso actual sin agregarlo al área de preparación ni confirmarlo. Esto le permite guardar su progreso y restaurarlo cuando lo necesite.

Guardaremos nuestro progreso actual proporcionando un nombre y guardándolo. 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

Puede ver su lista de alijo y anotar el índice correspondiente para recuperarla.

$ git stash list

 

stash@{0}: On master: new-idea

 

Nuestro alijo de “nuevas ideas” se guarda en el índice 0. Para recuperarlo, use este comando:

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

Tiene la opción de cambiar el nombre de su sucursal predeterminada a algo más apropiado. En este caso, cambiaremos el nombre de "maestro" a "principal". 

$ git branch -M main

 

10 técnicas avanzadas de Git
 

Puede verificar los cambios usando el siguiente comando: 

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

Si desea ver un historial detallado de todas las confirmaciones realizadas en el repositorio actual, puede utilizar el comando `git log`. Sin embargo, el resultado puede resultar difícil de leer. Para hacerlo más legible, puede utilizar las banderas `graph`, `decorate` y `oneline`. Esto mostrará los cambios realizados en varias ramas y cómo se fusionan.

$ git log --graph --decorate --oneline

 

10 técnicas avanzadas de Git

En varias ocasiones me cambié de sucursal y olvidé el nombre de la sucursal anterior. En consecuencia, tuve que usar el comando `git branch -a` para ver la lista de nombres de ramas. Sin embargo, existe una forma más sencilla de volver a la rama original utilizando el guión "-" después del comando `git checkout`.

Primero crearemos la nueva rama de Git "neo".

$ git branch neo

 

Cambiaremos a la rama “neo”.

$ git checkout neo

 

Switched to branch 'neo'

 

Para volver a la rama original, usaremos el siguiente comando:

$ git checkout -

 

Switched to branch 'main'

Hemos aprendido cómo anular el repositorio remoto. Aprendamos cómo anular el repositorio local usando el repositorio remoto.

Usaremos el comando `fetch` para obtener los últimos cambios del repositorio remoto. 

$ git fetch origin

 

Luego, usaremos el comando 'reset' con el indicador 'hard' para anular cualquier cambio local con la versión remota. Tenga en cuenta que esto descartará permanentemente cualquier cambio local.

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

Si todavía hay archivos sin seguimiento, se pueden eliminar usando el siguiente comando:

$ git clean -df

Me inspiré para escribir este artículo después de ver un Video de Youtube por barco de fuego. Admiro al creador por su capacidad para explicar temas complejos de forma sencilla. Siguiendo su método, aprendí mucho sobre las funciones de Git.

En este artículo, cubrimos técnicas avanzadas de Git que son cruciales para los científicos de datos e ingenieros de software que trabajan en un proyecto de datos colaborativo. Conocer estas técnicas puede ayudarle a evitar accidentes y resolver problemas mucho más rápido.

Espero que hayas encontrado útil este blog. Avíseme si desea leer más publicaciones con información del tamaño de un byte sobre las herramientas más utilizadas en el mundo de la ciencia de datos.
 
 

Abid Ali Awan (@ 1abidaliawan) es un profesional científico de datos certificado al que le encanta crear modelos de aprendizaje automático. Actualmente, se está enfocando en la creación de contenido y escribiendo blogs técnicos sobre aprendizaje automático y tecnologías de ciencia de datos. Abid tiene una Maestría en Gestión de Tecnología y una licenciatura en Ingeniería de Telecomunicaciones. Su visión es construir un producto de IA utilizando una red neuronal gráfica para estudiantes que luchan contra enfermedades mentales.

Sello de tiempo:

Mas de nuggets