Cómo usar Git Force Pull

Cómo usar Git Force Pull
Los archivos y carpetas GIT de cualquier proyecto GIT pueden ser compartidos por múltiples usuarios de GIT que trabajan en un equipo. Cuando varios usuarios intentan trabajar en el mismo archivo o carpeta, surge un conflicto. Suponga, cuando los dos usuarios están trabajando en el mismo archivo de un repositorio, y si un usuario modifica el archivo después de la modificación realizada por otro usuario, entonces la modificación realizada por el primer usuario se perderá en la última actualización. Este problema se puede resolver manualmente. El usuario tiene que hacer fuerza para sobrescribir los cambios en el repositorio local sin afectar los cambios realizados en el repositorio local que no se presionan. 'Git Pull' El comando no puede resolver este problema. La forma de usar git force tirón por 'Git para buscar' y 'Restablecimiento de git' Los comandos se han mostrado en este tutorial.

Prerrequisitos:

Instalar escritorio Github

Github Desktop ayuda al usuario de GIT a realizar las tareas relacionadas con GIT gráficamente. Puede descargar fácilmente el último instalador de esta aplicación para Ubuntu desde Github.comunicarse. Debe instalar y configurar esta aplicación después de descargar para usarla. También puede verificar el tutorial para instalar GitHub Desktop en Ubuntu para conocer el proceso de instalación correctamente.

Crear una cuenta de Github

Deberá crear una cuenta de GitHub para verificar los comandos utilizados en este tutorial.

Crear un repositorio local y remoto

Debe crear un repositorio local y publicar el repositorio en el servidor remoto para probar los comandos utilizados en este tutorial.

Sobrescribir los cambios locales para forzar a Git Pull:

El 'Git Fetch -alt' El comando descarga todo el contenido del repositorio remoto en el repositorio local pero no fusiona el contenido con el repositorio local. Después de ejecutar el comando de búsqueda, si el 'Restablecimiento de git' El comando se ejecuta con el -duro Opción, luego todos los archivos y carpetas coincidentes del repositorio local se sobrescribirán por el contenido del repositorio remoto. Todos los cambios locales no comprometidos y comprometidos que no se empujan se eliminarán para el -opción dura. Este problema se ha descrito en esta parte del tutorial mediante el uso de un repositorio local llamado Python publicado antes en el servidor remoto.

Abre el básico.py Archivo desde el repositorio remoto para verificar el contenido del archivo. La siguiente imagen muestra que el archivo contiene cuatro líneas de script para agregar dos números.

Force Git Pull para cambios no comprometidos:

Ahora, abra el básico.PY FILE del repositorio local en cualquier editor de texto y modifique el archivo con el siguiente contenido. Guarde el archivo y renuncie al editor.

Imprimir ("Agregar tres números")
a = 10
B = 20
c = 30
Imprimir (A+B+C)

Ejecute los siguientes comandos para agregar el modificado básico.py Archivo en el repositorio local y verifique el estado del repositorio.

$ git agregar básico.py
Estado de $ git

La siguiente salida aparecerá después de ejecutar el comando. La salida muestra que la tarea aún no está cometida.

Ejecute los siguientes comandos para verificar el contenido del básico.py archivo antes de extraer el contenido del repositorio remoto y verificar el contenido del básico.py Después de tirar con fuerza.

$ Cat Basic.py
$ git fetch -todo
RESET $ GIT -Origen -Hard/Main
$ Cat Basic.py

La siguiente salida muestra que el contenido del básico.py el archivo ha sido sobrescribido por el contenido del básico.py archivo del servidor remoto, y el contenido modificado se ha perdido.

Force Git Pull para cambios comprometidos:

De nuevo, abra el básico.py Archivo del repositorio local en cualquier editor de texto y modifique el archivo con el siguiente contenido. Guarde el archivo y renuncie al editor.

Imprimir ("Restar dos números")
a = 50
B = 20
Imprimir (A - B)

Ejecute los siguientes comandos para agregar el modificado básico.py Archivo en el repositorio local, confirme la tarea y verifique el estado del repositorio.

$ git agregar básico.py
$ git commit -m "básico.Py se ha actualizado "
Estado de $ git

La siguiente salida muestra que el modificado básico.py El archivo se agrega y se compromete con un mensaje de confirmación. El árbol de trabajo actual está limpio ahora.

Ejecute los comandos anteriores nuevamente para verificar cómo el 'Restablecimiento de git' El comando funciona para la tarea comprometida.

$ Cat Basic.py
$ git fetch -todo
RESET $ GIT -Origen -Hard/Main
$ Cat Basic.py

La siguiente salida muestra que el contenido del archivo remoto ha sobrescrito el contenido del archivo local nuevamente. Entonces el 'Restablecimiento de git' El comando funciona igual para tareas comprometidas y no comprometidas.

Guardar cambios locales antes de forzar a Git Pull:

El problema de sobrescritura se puede resolver creando una nueva rama. Comprometer todos los cambios en el repositorio antes de ejecutar los comandos de extracción. De nuevo, abra el básico.py Archivo del repositorio local en cualquier editor de texto y modifique el archivo con el siguiente contenido. Guarde el archivo y renuncie al editor.

imprimir ("multiplicar dos números")
a = 10
B = 20
Imprimir (a * b)

Ejecute los siguientes comandos para verificar la lista de sucursales, cambiar a una nueva rama y verificar el contenido del básico.py archivo después de ejecutar los comandos de extracción.

$ GIT Branch
$ git checkout -B New -Branch
$ git fetch -alt
RESET $ GIT -Origen -Hard/Main
$ Cat Basic.py

La siguiente salida muestra que el contenido del básico.py El archivo se ha sobrescrito para la nueva rama.

Ahora, ejecute los siguientes comandos para verificar el contenido del básico.py archivo después de cambiar a la principal rama.

$ git checkout main
$ Cat Basic.py

La siguiente salida muestra que el contenido del básico.py ha permanecido sin cambios.

Conclusión:

El problema de extraer el repositorio Git con fuerza y ​​cómo resolver este problema se ha explicado en este tutorial mediante el uso de un repositorio de demostración local y remoto. Pero esta solución no funcionará para los cambios no comprometidos del repositorio local. Entonces, tienes que cometer todos los cambios o ejecutar el 'Git Stash' comandar antes de tirar del repositorio git con fuerza.