Wie man Git Force Pull verwendet

Wie man Git Force Pull verwendet
GIT -Dateien und -ordner eines jeden Git -Projekts können von mehreren GIT -Benutzern gemeinsam genutzt werden, die in einem Team arbeiten. Wenn mehrere Benutzer versuchen, an derselben Datei oder demselben Ordner zu arbeiten, entsteht Konflikte. Nehmen wir an, wenn die beiden Benutzer an derselben Datei eines Repositorys arbeiten und ein Benutzer die Datei nach der Änderung durch einen anderen Benutzer ändert, wird die vom erste Benutzer vorgenommene Änderung durch das letzte Update verloren gehen. Dieses Problem kann manuell gelöst werden. Der Benutzer muss eine Kraft ziehen, um die Änderungen im lokalen Repository zu überschreiben, ohne die Änderungen im lokalen Repository vorzunehmen, die nicht gedrückt werden. "Git Pull" Der Befehl ist nicht in der Lage, dieses Problem zu lösen. Der Weg, um Git Force zu verwenden, um zu ziehen "Git holt" Und "Git Reset" Befehle haben in diesem Tutorial gezeigt.

Voraussetzungen:

Installieren Sie GitHub Desktop

Github Desktop hilft dem Git-Benutzer, die GIT-bezogenen Aufgaben grafisch auszuführen. Sie können den neuesten Installateur dieser Anwendung für Ubuntu einfach von GitHub herunterladen.com. Sie müssen diese Anwendung nach dem Download installieren und konfigurieren, um sie zu verwenden. Sie können das Tutorial auch überprüfen.

Erstellen Sie ein GitHub -Konto

Sie müssen ein GitHub -Konto erstellen, um die in diesem Tutorial verwendeten Befehle zu überprüfen.

Erstellen Sie ein lokales und Remote -Repository

Sie müssen ein lokales Repository erstellen und das Repository im Remote -Server veröffentlichen, um die in diesem Tutorial verwendeten Befehle zu testen.

Überschreiben Sie lokale Änderungen, um Git Pull zu erzwingen:

Der "Git Fetch -all" Der Befehl lädt alle Inhalte des Remote -Repositorys in das lokale Repository herunter, fügt jedoch den Inhalt nicht mit dem lokalen Repository zusammen. Nach dem Ausführen des Fetch -Befehls, wenn die "Git Reset" Befehl wird mit dem ausgeführt -hart Option, dann werden alle übereinstimmenden Dateien und Ordner des lokalen Repositorys durch den Inhalt des Remote -Repositorys überschrieben. Alle nicht übertragenen und engagierten lokalen Veränderungen, die nicht vorangetrieben werden, werden für die gelöscht -Harte Option. Dieses Problem wurde in diesem Teil des Tutorials mit einem lokalen Repository namens Python beschrieben, das zuvor auf dem Remote -Server veröffentlicht wurde.

Öffne das Basic.py Datei aus dem Remote -Repository, um den Inhalt der Datei zu überprüfen. Das folgende Bild zeigt, dass die Datei vier Skriptlinien enthält, um zwei Zahlen hinzuzufügen.

Force Git Pull für nicht übereinstimmende Änderungen:

Öffnen Sie nun die Basis.PY -Datei des lokalen Repositorys in einem beliebigen Texteditor und ändern Sie die Datei mit dem folgenden Inhalt. Speichern Sie die Datei und kündigen Sie vom Editor.

drucken („drei Zahlen hinzufügen“)
A = 10
B = 20
C = 30
drucken (a+b+c)

Führen Sie die folgenden Befehle aus, um das geänderte hinzuzufügen Basic.py Datei im lokalen Repository und überprüfen Sie den Repository -Status.

$ git basic hinzufügen.py
$ Git Status

Nach der Ausführung des Befehls wird die folgende Ausgabe angezeigt. Die Ausgabe zeigt, dass die Aufgabe noch nicht begangen wird.

Führen Sie die folgenden Befehle aus, um den Inhalt des Basic.py Datei vor dem Ziehen des Inhalts des Remote -Repositorys und überprüfen Sie den Inhalt des Basic.py Nachdem wir uns gewaltsam gezogen haben.

$ Cat Basic.py
$ git fetch -alle
$ git Reset -harte Herkunft/Main
$ Cat Basic.py

Die folgende Ausgabe zeigt, dass der Inhalt des Basic.py Die Datei wurde durch den Inhalt des Basic.py Datei des Remote -Servers und der geänderte Inhalt ist verloren gegangen.

Force Git Pull für engagierte Änderungen:

Öffnen Sie wieder die Basic.py Datei des lokalen Repositorys in einem beliebigen Texteditor und ändern Sie die Datei mit dem folgenden Inhalt. Speichern Sie die Datei und kündigen Sie vom Editor.

Druck („zwei Zahlen subtrahieren“)
A = 50
B = 20
drucken (a - b)

Führen Sie die folgenden Befehle aus, um das geänderte hinzuzufügen Basic.py Datei im lokalen Repository, die Aufgabe festlegen und den Repository -Status überprüfen.

$ git basic hinzufügen.py
$ Git Commit -m "Grundlegend.PY hat aktualisiert "
$ Git Status

Die folgende Ausgabe zeigt, dass die modifizierten Basic.py Die Datei wird hinzugefügt und mit einer Commit -Nachricht verpflichtet. Der aktuelle Arbeitsbaum ist jetzt sauber.

Führen Sie die vorherigen Befehle erneut aus, um zu überprüfen, wie die "Git Reset" Befehl funktioniert für die engagierte Aufgabe.

$ Cat Basic.py
$ git fetch -alle
$ git Reset -harte Herkunft/Main
$ Cat Basic.py

Die folgende Ausgabe zeigt, dass der Inhalt der Remotedatei den Inhalt der lokalen Datei erneut überschrieben hat. Also die "Git Reset" Der Befehl funktioniert gleich für engagierte und nicht übereinstimmende Aufgaben.

Speichern Sie lokale Änderungen, bevor Sie Git Pull erzwingen:

Das Überschreibproblem kann durch Erstellen eines neuen Zweigs gelöst werden. Beachten Sie alle Änderungen am Repository, bevor Sie die Pull -Befehle ausführen. Öffnen Sie wieder die Basic.py Datei des lokalen Repositorys in einem beliebigen Texteditor und ändern Sie die Datei mit dem folgenden Inhalt. Speichern Sie die Datei und kündigen Sie vom Editor.

drucken („zwei Zahlen multiplizieren“)
A = 10
B = 20
drucken (a * b)

Führen Sie die folgenden Befehle aus, um die Niederlassungsliste zu überprüfen, zu einer neuen Filiale zu wechseln und den Inhalt des Basic.py Datei nach der Ausführung der Pull -Befehle.

$ Git Branch
$ git checkout -b New -Branch
$ git fetch -all
$ git Reset -harte Herkunft/Main
$ Cat Basic.py

Die folgende Ausgabe zeigt, dass der Inhalt des Basic.py Die Datei hat für den neuen Zweig überschrieben.

Führen Sie nun die folgenden Befehle aus, um den Inhalt des Basic.py Datei nach dem Umschalten auf die hauptsächlich Zweig.

$ Git Checkout Main
$ Cat Basic.py

Die folgende Ausgabe zeigt, dass der Inhalt des Basic.py ist unverändert geblieben.

Abschluss:

Das Problem, das Git -Repository mit einer gewaltsamen Lösung zu ziehen und dieses Problem zu lösen. Diese Lösung funktioniert jedoch nicht für die nicht übereinstimmenden Änderungen des lokalen Repositorys. Sie müssen also alle Änderungen begehen oder die ausführen "Git Stash" Befehl, bevor Sie das Git -Repository mit gewaltsamer Ziehung ziehen.