436 Stimmen

Synchronisierung eines lokalen Git-Repositorys mit einem entfernten Repository

Ich möchte mein lokales Repository mit einem entfernten Repository synchronisieren, so dass mein lokales Repository eine 100%ige Kopie des entfernten Repositorys wird - das heißt, wenn sich bestimmte Dateien in diesen Repositories unterscheiden, überschreiben wir die lokalen mit den entfernten, und wenn es Dateien in den lokalen Repositories gibt, die im entfernten nicht existieren, werden die lokalen Dateien entfernt.

Gibt es eine andere Möglichkeit, dies zu erreichen, als einen neuen Klon des entfernten Repositorys zu erstellen?

Ähnliche Frage wie Synchronisierung des lokalen Git-Repos mit dem entfernten Repository auf einen Schlag unter Vernachlässigung lokaler Änderungen/Beiträge .

5voto

tjb Punkte 10921

(Diese Information stammt von Das Git-Benutzerhandbuch )

Ich lerne auch noch, also ist das vielleicht nicht gerade eine Antwort auf die Frage, aber vielleicht hilft es jemandem:

  1. Wenn ein entferntes Repository zunächst geklont wird, werden Kopien aller Zweige in Ihrem lokalen Repository gespeichert (Sie können sie mit git branch -r )
  2. Um diese Kopien zu aktualisieren und auf den neuesten Stand zu bringen (d.h. sie mit dem entfernten Zweig zu synchronisieren), verwenden Sie git fetch . Dies hat keine Auswirkungen auf Ihre bestehenden, selbst erstellten Zweige.
  3. Um Ihren lokalen Zweig zu überschreiben, checken Sie eine neue Version des Zweigs aus, an dem Sie gerade arbeiten (vorausgesetzt, Sie haben bereits die git add origin /path/to/repository ) verwenden git checkout origin/branch_name werden Ihre lokalen Änderungen in der Verzweigung überschrieben. branch_name

4voto

Nishant Upadhyay Punkte 609

Wenn Sie über das Synchronisieren eines Forked Repos sprechen, dann können Sie diese Schritte befolgen.

Wie synchronisiert man ein Fork-Repository von Git aus?

  1. Prüfen Sie Ihren aktuellen Git-Zweig

    git branch

  2. Checkout zum Master, wenn Sie nicht auf dem Master sind

    git checkout master

  3. Holen Sie das Upstream-Repository, wenn Sie die richtigen Zugriffsrechte haben

    git fetch upstream

  4. Wenn Sie den folgenden Fehler erhalten, führen Sie Folgendes aus

    git remote add upstream git@github.com:upstream_clone_repo_url/xyz.git

    fatal: 'upstream/master' does not appear to be a git repository  
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights and the repository exists.
  5. Führen Sie nun den folgenden Befehl aus.

    git fetch upstream

  6. Wenn Sie auf dem Master-Zweig sind, führen Sie den Upstream/Master-Zweig in den Master-Zweig ein

    git merge upstream/master

    Das war's!!

    Gegenprobe über git remote Befehl, spezifischer git remote -v

    Wenn ich auch Commit-Rechte für das Upstream-Repository habe, kann ich einen lokalen Upstream-Zweig erstellen und dort Arbeiten durchführen, die dann in den Upstream gehen.

3voto

Richard Hansen Punkte 47390

Klingt, als ob Sie einen Spiegel des entfernten Repositorys benötigen:

git clone --mirror url://to/remote.git local.git

Dieser Befehl erstellt ein reines Repository. Wenn Sie kein Bare Repository wollen, werden die Dinge komplizierter.

3voto

Asaf Punkte 513

Dieses Skript prüft, welche lokalen Fernbedienungen nicht in Ihrer Fernbedienung vorhanden sind und entfernt sie aus der lokalen

git fetch --prune; git branch -vv | egrep -v "(\[origin\/[a-zA-Z0-9/_-]+\])" | awk "{print \$1}" | xargs git branch -D

2voto

monkSinha Punkte 311

Die dauerhafte Lösung, wenn man einen neuen Zweig auf dem entfernten Rechner erstellen will, um den lokalen Zweig zu spiegeln und zu verfolgen (oder umgekehrt), ist:

git config --global push.default current

Ich konfiguriere mein lokales Git immer mit diesem Befehl, nachdem ich git clone ausgeführt habe. Er kann jedoch jederzeit angewendet werden, wenn der Fehler "Git fatal: The current branch has no upstream branch" auftritt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X