Heim Entwicklungswerkzeuge Idiot Der Unterschied zwischen „git fetch' und „git pull'

Der Unterschied zwischen „git fetch' und „git pull'

Jul 22, 2020 pm 05:59 PM
fetch git pull

Der Unterschied zwischen „git fetch' und „git pull'

Sowohl Git Fetch als auch Git Pull können das Remote-Repository auf das lokale aktualisieren. Es gibt also mehrere Konzepte, die erwähnt werden müssen, um dieses Problem zu klären.

FETCH_HEAD: ist ein Versionslink, der in einer lokalen Datei aufgezeichnet wird und auf die Endversion des Zweigs verweist, der aus dem Remote-Warehouse entfernt wurde.

commit-id: Nachdem jede lokale Arbeit abgeschlossen ist, wird ein Git-Commit-Vorgang ausgeführt, um die aktuelle Arbeit im lokalen Repo zu speichern. Zu diesem Zeitpunkt wird ein Commit durchgeführt. Es wird eine ID generiert, eine Seriennummer, die eine Version eindeutig identifiziert. Nach der Verwendung von Git Push wird diese Seriennummer auch mit dem Remote-Warehouse synchronisiert.

Mit den oben genannten Konzepten sprechen wir über Git Fetch

Git Fetch: Dadurch wird die neueste Commit-ID der Zweige aktualisiert, die in allen Remote-Repositorys in Git Remote enthalten sind . Notieren Sie es in der .git/FETCH_HEAD-Datei
Git fetch aktualisiert das Remote-Warehouse wie folgt:

git fetch origin master:tmp 
//在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp 
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除
Nach dem Login kopieren

(1) Wenn Sie git fetch direkt verwenden, sind die Schritte wie folgt:

  • Erstellen und aktualisieren Sie lokale Remote-Filialen. Das heißt, erstellen und aktualisieren Sie den Zweig origin/xxx und ziehen Sie den Code in den Zweig origin/xxx.

  • Legen Sie die Korrespondenz zwischen aktuellem Zweig-Ursprung und aktuellem Zweig in FETCH_HEAD fest. Wenn Sie zu diesem Zeitpunkt direkt git merge ausführen, kann Ursprung/abc mit dem abc-Zweig zusammengeführt werden.

(2) git fetch origin
Geben Sie einfach manuell die abzurufende Fernbedienung an. Wenn kein Zweig angegeben ist, wird normalerweise standardmäßig Master

(3) verwendet. git fetch origin dev
gibt Remote Remote und FETCH_HEAD an und ruft nur die Commits dieses Zweigs ab.

Dieser Befehl greift auf das Remote-Warehouse zu und ruft alle Daten ab, die Sie noch nicht haben. Sobald die Ausführung abgeschlossen ist, verfügen Sie über Verweise auf alle Zweige in diesem Remote-Repository, die jederzeit zusammengeführt oder angezeigt werden können.

Wenn Sie den Befehl „git clone“ verwenden, um ein Repository zu klonen, fügt der Befehl es automatisch als Remote-Repository hinzu (git remote -v) und verwendet standardmäßig „origin“ als Abkürzung. Git fetch origin ruft also alle seit dem Klon (oder dem letzten Abruf) neu gepushten Arbeiten ab. Es ist wichtig zu beachten, dass der Befehl „git fetch“ Daten in Ihr lokales Repository zieht – er führt Ihre aktuelle Arbeit nicht automatisch zusammen oder ändert sie. Sie müssen es manuell in Ihren Job integrieren, wenn Sie fertig sind.

Wenn Sie einen Zweig eingerichtet haben, um einen Remote-Zweig zu verfolgen, können Sie den Befehl „git pull“ verwenden, um den Remote-Zweig automatisch abzurufen und mit dem aktuellen Zweig zusammenzuführen. Dies kann für Sie ein einfacherer oder komfortablerer Arbeitsablauf sein; standardmäßig legt der Befehl „git clone“ den lokalen Master-Zweig automatisch fest, um den Master-Zweig des geklonten Remote-Repositorys (oder wie auch immer der Standard-Zweig heißt) zu verfolgen. Beim Ausführen von git pull werden normalerweise die Daten vom ursprünglich geklonten Server abgerufen und automatisch versucht, sie mit dem aktuellen Zweig zusammenzuführen.

Git Pull: Vergleichen Sie zunächst basierend auf dem lokalen FETCH_HEAD-Datensatz den lokalen FETCH_HEAD-Datensatz mit der Versionsnummer des Remote-Warehouses, und dann ruft Git Fetch die nachfolgenden Versionsdaten des Remote-Warehouses ab Zweig, auf den derzeit verwiesen wird, und verwenden Sie dann git merge, um ihn mit dem lokalen aktuellen Zweig zusammenzuführen. Man kann also davon ausgehen, dass Git Pull eine Kombination der beiden Schritte Git Fetch und Git Merge ist.

Git Pull wird wie folgt verwendet:

git pull <远程主机名> <远程分支名>:<本地分支名>
//取回远程主机某个分支的更新,再与本地的指定分支合并。
Nach dem Login kopieren

Daher ist Git Fetch im Vergleich zu Git Pull gleichbedeutend damit, die neueste Version von der Fernbedienung auf die lokale Version zu übertragen, aber es ist wird nicht automatisch zusammengeführt. Wenn Sie selektiv zusammenführen müssen, ist Git Fetch die bessere Wahl. Wenn der Effekt derselbe ist, ist Git Pull schneller.

Hinweis: Die Verwendung von Git Pull zum Aktualisieren des Codes ist relativ einfach und gewalttätig. Gemessen an der Commit-ID sind die tatsächlichen Implementierungsprinzipien jedoch unterschiedlich. Verwenden Sie daher nicht Git Pull und Git Merge um es einfacher zu machen.

Empfohlenes Tutorial: „Git

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen „git fetch' und „git pull'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

So führen Sie das H5 -Projekt aus So führen Sie das H5 -Projekt aus Apr 06, 2025 pm 12:21 PM

Ausführen des H5 -Projekts erfordert die folgenden Schritte: Installation der erforderlichen Tools wie Webserver, Node.js, Entwicklungstools usw. Erstellen Sie eine Entwicklungsumgebung, erstellen Sie Projektordner, initialisieren Sie Projekte und schreiben Sie Code. Starten Sie den Entwicklungsserver und führen Sie den Befehl mit der Befehlszeile aus. Vorschau des Projekts in Ihrem Browser und geben Sie die Entwicklungsserver -URL ein. Veröffentlichen Sie Projekte, optimieren Sie Code, stellen Sie Projekte bereit und richten Sie die Webserverkonfiguration ein.

Gitee Pages statische Website -Bereitstellung fehlgeschlagen: Wie können Sie einzelne Dateien 404 Fehler beheben und beheben? Gitee Pages statische Website -Bereitstellung fehlgeschlagen: Wie können Sie einzelne Dateien 404 Fehler beheben und beheben? Apr 04, 2025 pm 11:54 PM

GitePages statische Website -Bereitstellung fehlgeschlagen: 404 Fehlerbehebung und Auflösung bei der Verwendung von Gitee ...

Wie gibt ich die mit dem Modell in Beego Orm zugeordnete Datenbank an? Wie gibt ich die mit dem Modell in Beego Orm zugeordnete Datenbank an? Apr 02, 2025 pm 03:54 PM

Wie kann man im Beegoorm -Framework die mit dem Modell zugeordnete Datenbank angeben? In vielen BeEGO -Projekten müssen mehrere Datenbanken gleichzeitig betrieben werden. Bei Verwendung von BeEGO ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Bedarf die Produktion von H5 -Seiten eine kontinuierliche Wartung? Bedarf die Produktion von H5 -Seiten eine kontinuierliche Wartung? Apr 05, 2025 pm 11:27 PM

Die H5 -Seite muss aufgrund von Faktoren wie Code -Schwachstellen, Browserkompatibilität, Leistungsoptimierung, Sicherheitsaktualisierungen und Verbesserungen der Benutzererfahrung kontinuierlich aufrechterhalten werden. Zu den effektiven Wartungsmethoden gehören das Erstellen eines vollständigen Testsystems, die Verwendung von Versionstools für Versionskontrolle, die regelmäßige Überwachung der Seitenleistung, das Sammeln von Benutzern und die Formulierung von Wartungsplänen.

Warum gibt es bei Verwendung von SQL.Open keinen Fehler an, wenn DSN leer ist? Warum gibt es bei Verwendung von SQL.Open keinen Fehler an, wenn DSN leer ist? Apr 02, 2025 pm 12:54 PM

Warum meldet der DSN bei Verwendung von SQL.Open keinen Fehler? In Go Language, Sql.open ...

See all articles