Heim  >  Artikel  >  System-Tutorial  >  Erfahren Sie mehr über den Unterschied zwischen Git Fetch und Git Pull

Erfahren Sie mehr über den Unterschied zwischen Git Fetch und Git Pull

王林
王林nach vorne
2024-04-27 21:34:33432Durchsuche

详细了解git fetch与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: Es handelt sich um einen 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 eine Commit-ID generiert, bei der es sich um eine Seriennummer handelt, die eindeutig identifiziert eine Version. Nach der Verwendung von Git Push wird diese Seriennummer auch mit dem Remote-Warehouse synchronisiert.

Lassen Sie uns mit den oben genannten Konzepten über Git Fetch sprechen
git fetch: Dadurch wird die neueste Commit-ID der Zweige aktualisiert, die in allen Remote-Repositorys in git remote enthalten sind, und sie wird in der Datei .git/FETCH_HEAD aufgezeichnet
Git Fetch aktualisiert das Remote-Repository wie folgt:

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

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

  • Erstellen und aktualisieren Sie lokale Remote-Zweigstellen. Das heißt, erstellen und aktualisieren Sie den Zweig origin/xxx und ziehen Sie den Code in den Zweig origin/xxx.
  • Legen Sie den aktuellen Zweig-Origin/aktuellen Zweig in FETCH_HEAD fest. Wenn Sie git merge direkt durchführen, kann origin/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 der Standardwert „master“ verwendet

(3)git fetch origin dev

Geben Sie remote und FETCH_HEAD an und rufen Sie nur die Commits dieses Zweigs ab.

Git Pull: Vergleichen Sie zunächst basierend auf dem lokalen FETCH_HEAD-Datensatz den lokalen FETCH_HEAD-Datensatz mit der Versionsnummer des Remote-Warehouses, verwenden Sie dann Git Fetch, um die nachfolgenden Versionsdaten des Remote-Zweigs abzurufen, auf den aktuell verwiesen wird, und verwenden Sie ihn dann git merge, um es mit Merge 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. Die Verwendung von Git Pull ist wie folgt:

git pull <span class="hljs-tag">60c690392010ae04a4c92ce6c44e5cd2</span> <span class="hljs-tag">2e81c6e41cd53cc8483c7ee2820f9055</span>:<span class="hljs-tag">a70f6d52bffd2c4d7fbfb25461f834a0</span>
//取回远程主机某个分支的更新,再与本地的指定分支合并。
Daher entspricht Git Fetch im Vergleich zu Git Pull dem Abrufen der neuesten Version von der Fernbedienung auf die lokale Version, wird jedoch 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.

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über den Unterschied zwischen Git Fetch und Git Pull. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen