Frage

ich ein Remote-Repository einrichten und ich kann neue Änderungen schieben, aber ich kann von ihm nicht holen, habe ich immer die (eher kryptischen) Fehlermeldung:

fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository
fatal: The remote end hung up unexpectedly

Was bedeutet das? Was soll ich tun fetching aktivieren?

(Beachten Sie, dass diese Remote-Repo nur als Backup-Repo verwendet wird, so ist es ziemlich viel eine exakte Kopie von meinem lokalen Repository sein sollte. Ich kann wirklich nicht verstehen, warum ich es schieben kann, aber nicht von ihm holen .. ).

Meine Config sieht aus wie:

[remote "origin"]
    url = ssh://blablablah
    fetch = +refs/*:refs/*
    mirror = true
War es hilfreich?

Lösung

Was Sie versuchen zu tun, auf der Zweig Sie sind workin zu holen. Das heißt, Sie sind auf dem Master-Zweig und Sie versuchen, es zu aktualisieren. Das ist nicht möglich. Es ist eher üblich, die remotes/* Zweige zu aktualisieren und dann in die auf lokaler Ebene ziehen. Was Sie wollen, ist vielleicht

git remote add otherrepo thehost:/the/path.git

Das wird Setup-Repository geholt werden in remotes/otherrepo/*. git fetch otherrepo sollte es tun. Alternativeley, können Sie Ihre .git/config und Set fetch für die Fernbedienung, um so etwas wie refs/heads/*:refs/remotes/otherrepo/* manuell bearbeiten.

Andere Tipps

Falls sich jemand findet, weil sie speziell in den aktuellen Zweig holen wollen, können Sie die --update-head-ok Flag verwenden. Aus docs :

  

-u
  --update-Kopf-ok
  Standardmäßig Git holen sich weigert, den Kopf zu aktualisieren, die auf den aktuellen Zweig entspricht. Dieses Flag wird die Prüfung deaktiviert. Dies ist rein für den internen Gebrauch für Git-Pull mit git zu kommunizieren holen, und , wenn Sie Ihr eigenen Porzellan implementieren sollte man es nicht benutzen.

In einigen Fällen wir wollen unsere eigenen Porzellan Befehle implementieren, beispielsweise Automatisierung und Werkzeuge.

Auch sollte dies dies funktionieren, wenn Sie in sind Master Zweig und will spätestens bekommen versuchen, dieses

  

git pull Ursprung Master

Ich habe dieses Problem hatte, als ich geklont gedankenlos ein Repository, anstatt sie zu holen, so dass beide Verwahrungs Meister waren. Wenn Sie keine Arbeit auf der Remote-Repository getan haben, können Sie die Dinge mit den grundlegenden git Befehlen beheben, wie folgt: (1), um die Remote-Repository löschen, (2) kopieren das lokale Repository, wo die Fern war, (3) löschen die lokale ein, und dann (4) das lokale Repository mit

einrichten
git init; git fetch $REMOTE_GIT_REPOSITORY_URL  

Dann git pull und git push die richtigen Dinge tun. Der Vorteil git remote Vermeidung pro Michaels effizienter und prinzipien Antwort ist, dass Sie nicht über die Semantik von Tracking-Zweig zu denken brauchen.

Ich habe das gleiche Problem. Zuerst versuche ich mit diesem

zu holen
git fetch [remote_name] [branch_name] 

Ich hatte das gleiche Problem, das Sie erwähnen. Danach habe ich versucht, diesen einfachen Befehl.

git pull [remote_name] [branch_name]

Hinweis wird holen und die Änderungen zusammenführen. Wenn Sie Terminal dann Datei öffnen verwenden, erfordern Nachricht zu begehen. Mit dieser Nachricht wird drücken Sie die neueste begehen. Versuchen Sie diesen Befehl und schließlich werden Sie in der Lage sein, die Anfrage zu drücken.

git push [remote_name] [branch_name_local] 

tippen Sie tatsächlich Git Befehle in die Befehlszeile oder laufen Sie die Git ausführbare Datei aus Ihrem eigenen Code?
Wenn Sie es von Code ausführen, sind Sie sicher, dass Git versucht, in die richtige lokale Verzeichnis zu holen?

Es gibt zwei Möglichkeiten, dies zu tun:

  1. Mit den von Ihrer Programmiersprache zur Verfügung stehenden Optionen des richtigen Arbeitsverzeichnis festlegen, bevor Git
    Ausführung ( C # Beispiel , weil das ist, was ich verwende)

  2. Immer passieren -C Parameter Git href="https://stackoverflow.com/a/20115526/6884"> das Verzeichnis mit dem lokalen Repo angeben.


Ich habe ein Projekt, wo ich die Git ausführbare Datei von C # -Code mir anrufen, und ich habe die gleiche Fehlermeldung wie in der Frage, wenn ich aus Versehen den -C parameter einzustellen vergessen.

fatal: Verweigern holen in der aktuellen Zweig refs / heads / branch von nicht-bare Repository

Ich habe einen Zweig branch Erstellt lokal dann ausgeführt Befehl " Git holen Upstream-Pull / ID / Kopf: Branchen " und bekam fatal: Verweigern in Stromzweig refs / heads / branch von nicht-bare Repository holen

dann gelöscht i den Zweig und rufen wieder die gleichen cmd es Wege in Ordnung.

Eigentlich Pull-Request Zweig i wurde Check-out.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top