Git Push --force-with-lease vs Git Push --force

John Wachira 15 febrero 2024
  1. el comando git push --force
  2. el comando git push --force-with-lease
Git Push --force-with-lease vs Git Push --force

Este artículo discutirá la diferencia entre los comandos git push --force-with-lease y git push --force. Generalmente, usamos el comando git push para publicar nuestros cambios locales en nuestro repositorio remoto.

Avancemos y examinemos estos mandamientos.

el comando git push --force

Al publicar nuestros cambios locales en nuestro repositorio remoto, ejecutamos:

$ git push origin

Sin embargo, en el caso de que varios desarrolladores compartan nuestro repositorio remoto y publiquen sus cambios en el repositorio remoto, Git puede rechazar una inserción.

Para obligar a Git a publicar nuestras commits, agregamos el indicador --force a nuestro comando git push, como se muestra a continuación.

$ git push --force origin

La desventaja de usar este comando es que no considera los cambios enviados por otros desarrolladores al repositorio remoto. El comando anulará el repositorio según el estado de su repositorio local.

Esto puede ser peligroso ya que puede estropear la línea de tiempo de nuestro proyecto. Si desea enviar cambios a un repositorio remoto y conservar los cambios realizados por otros desarrolladores, así es como lo hace.

el comando git push --force-with-lease

Este comando es útil cuando varios desarrolladores comparten un repositorio remoto. Lo usamos cuando publicamos nuestros cambios para evitar descartar los cambios impulsados ​​por otros desarrolladores.

$ git push --force-with-lease origin

Veamos un ejemplo. Este es el estado actual de nuestro repositorio remoto.

historial de compromisos

Haremos algunos cambios en el archivo README.md y confirmaremos los cambios mientras aún estamos en GitHub. Tenga en cuenta la identificación del commit delineada 097ab8b.

Así es como se ve ahora.

actualizar el historial de commits

Tenga en cuenta la identificación del commit ba29c53.

Ahora abriremos el archivo README.md en nuestra computadora, haremos algunas ediciones más, confirmaremos los cambios e intentaremos un git push.

Intento de empuje

Git ha rechazado nuestro intento de inserción ya que el historial de commits es diferente. Podemos ejecutar el comando git push --force, pero esto descartará los cambios que habíamos hecho en GitHub.

Podemos hacer git push --force-with-lease como se muestra a continuación.

$ git push --force-with-lease
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/Wachira11ke/Delftscopetech.git
 + b7b8e6a...8ddd086 main -> main (forced update)

La diferencia entre git push --force-with-lease y git push --force es el resultado. Enviar cambios con lease nos ayuda a evitar descartar cambios enviados por otros desarrolladores.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Push