Ich habe gerade entdeckt und verwendet FETCH_HEAD
. Ich wollte eine lokale Kopie einer Software von einem Server und ich tat es
git fetch gitserver release_1
gitserver
ist der Name meines Computers, auf dem Git-Repositorys gespeichert sind.
release_1
ist ein Tag für eine Version der Software. Zu meiner Überraschung release_1
war dann nirgends auf meinem lokalen Computer zu finden. Ich musste tippen
git tag release_1 FETCH_HEAD
um die Kopie der markierten Commit-Kette (release_1) vom Remote-Repository in das lokale Repository zu vervollständigen . Fetch hatte das Remote-Tag gefunden, das Commit auf meinen lokalen Computer kopiert, kein lokales Tag erstellt, sondern FETCH_HEAD
den Wert des Commits festgelegt, damit ich es finden und verwenden konnte. Ich habe dann FETCH_HEAD
ein lokales Tag erstellt, das mit dem Tag auf der Fernbedienung übereinstimmt. Dies ist eine praktische Illustration dessen, was FETCH_HEAD
ist und wie es verwendet werden kann, und kann für andere nützlich sein, die sich fragen, warum Git Fetch nicht das tut, was Sie naiv erwarten würden.
Meiner Meinung nach wird es zu diesem Zweck am besten vermieden, und ein besserer Weg, um das zu erreichen, was ich versucht habe, ist
git fetch gitserver release_1:release_1
dh Release_1 abrufen und lokal Release_1 nennen. (Es ist Quelle: dest, siehe https://git-scm.com/book/en/v2/Git-Internals-The-Refspec ; nur für den Fall, dass Sie ihm einen anderen Namen geben möchten!)
Möglicherweise möchten Sie jedoch FETCH_HEAD
manchmal Folgendes verwenden: -
git fetch gitserver bugfix1234
git cherry-pick FETCH_HEAD
Dies ist möglicherweise eine gute Möglichkeit, die Fehlerbehebungsnummer 1234 von Ihrem Git-Server zu verwenden und die Garbage Collection von Git zu verlassen, um die Kopie vom Server zu entsorgen, sobald der Fix in Ihrem aktuellen Zweig ausgewählt wurde. (Ich gehe davon aus, dass es ein schönes Commit mit sauberen Tags gibt, das die gesamte Fehlerbehebung auf dem Server enthält!)
git fetch origin master
wird tatsächlichorigin/master
nicht nur aktualisiertFETCH_HEAD
. Siehe stackoverflow.com/a/20967347/6309