suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wenn Git Fetch Remote-Tracking-Zweige abruft, wird dann eine Kopie generiert?

Diese Frage stellt sich beim Erlernen von Pro Git „Remote Branch“.

Frage:
Erzeugt Git Fetch eine lokale Kopie, wenn ein Remote-Tracking-Zweig abgerufen wird?

Lesen Sie zuerst die Originalerklärung,

Wenn Sie Ihre Arbeit synchronisieren möchten, führen Sie den Befehl git fetch origin aus. Dieser Befehl findet den Server „origin“ (in diesem Fall git.ourcompany.com), ruft Daten von ihm ab, die lokal nicht verfügbar sind, und aktualisiert die lokale Datenbank, indem er den Ursprungs-/Master-Zeiger so verschiebt, dass er auf den neuen zeigt , aktualisierter Standort.

Da der Hauptzweig lokal ist, wurden nach dem Klonen des Remote-Warehouse (F4265-Übermittlungspunkt) zwei lokale Übermittlungen durchgeführt, wodurch eine neue Übermittlungskette generiert wurde. Gleichzeitig hat jemand anderes auf dem Server den Master-Zweig (31b8e, 190a3) auf den Server übertragen. Daher verstehe ich bei der Verwendung von Git Fetch Origin Folgendes:
Der lokale Master-Zweig wird vom Fork-Punkt aus nicht beeinträchtigt Das heißt, ausgehend vom Ursprung/Master wird vor dem Abruf lokal ein neuer Zweig generiert. Dieser Zweig generiert lokal eine Kopie, und gleichzeitig zeigt der Ursprungs-/Master-Zeiger auf das Ende der lokalen Kopie.

Aber nachdem ich unten gelesen hatte, kam dieser Absatz wieder:

Besonders zu beachten ist, dass beim Erfassen eines neuen Remote-Tracking-Zweigs nicht automatisch eine bearbeitbare Kopie (Kopie) lokal erstellt wird. Mit anderen Worten: In diesem Fall wird es keinen neuen Serverfix-Zweig geben, sondern nur einen nicht veränderbaren Ursprungs-/Serverfix-Zeiger.

Ich verstehe nicht. Ist mein bisheriges Verständnis falsch? Die Darstellung in Abbildung 32 ist also auch falsch? Werden die beiden Festschreibungspunkte (31b8e, 190a3) überhaupt nicht lokal abgerufen, sondern nur ein neuer Ursprungs-/Masterzeiger in der Datenbank? Im Haupttext heißt es: „Erfassen Sie Daten, die nicht lokal verfügbar sind, und aktualisieren Sie die lokale Datenbank.“ Der Text ist sehr vage und sagt nicht, um welche Daten es sich handelt.

巴扎黑巴扎黑2716 Tage vor918

Antworte allen(1)Ich werde antworten

  • 给我你的怀抱

    给我你的怀抱2017-06-22 11:54:57

    没毛病。

    从中抓取本地没有的数据,并且更新本地数据库,移动 origin/master 指针指向新的、更新后的位置。

    划重点,这个分支是 master。

    当抓取到新的远程跟踪分支时,本地不会自动生成一份可编辑的副本(拷贝)。 换一句话说,这种情况下,不会有一个新的 serverfix 分支 - 只有一个不可以修改的 origin/serverfix 指针。

    所以,需要使用 git checkout -b serverfix origin/serverfix 创建可编辑的本地副本。

    只有 master 分支会创建可编辑的本地副本。其它的分支都是在 origin/* 下面,需要手动的 git checkout -b

    Antwort
    0
  • StornierenAntwort