Pushing zu einem Git-Repository funktioniert nicht

7

Ich beginne gerade mit GIT (ich komme von cvs) und möchte etwas einrichten, das mit Git cvs / svn ähnlich ist. Ich führte die folgenden Schritte durch:

%Vor%

Ich habe jetzt eine Datei namens file.txt mit etwas Inhalt erstellt Wenn ein "Git-Status" ausgeführt wird, werden die entsprechenden Änderungen aufgelistet.

Ich mache es dann

%Vor%

und beide scheinen gut zu funktionieren.

Wenn ich es tue git push , ich bekomme den folgenden Fehler:

%Vor%

Ich habe versucht, zuerst einen Pull zu machen, und auch die Nullpunkt- und Mastervariationen für den Push-Befehl anzugeben, aber keiner funktioniert.

Kann mir bitte jemand sagen, was ich vermisse. Ich verwende Windows 7 64 Bit.

Ps. Ich habe es auch versucht

%Vor%

und ich bekomme Folgendes:

%Vor%     
Coder 07.07.2010, 01:54
quelle

4 Antworten

13

Das ist uns vor ein paar Wochen passiert. Dies bedeutet, dass Sie ein Arbeitsverzeichnis in Ihrem Ursprungs-Repository ausgecheckt haben und Sie nicht zum Überschreiben drücken können.

Am Ursprung müssen Sie das Repository freilegen. Ich kenne keine Möglichkeit, es mit einem Befehl zu tun. Was ich getan habe (im Ursprungsrepository)

%Vor%

Ich sehe, dass der Ursprung in Ihrem Fall das Repository o: / ist. Der Ursprung sollte keine ausgecheckte Arbeitskopie sein, so dass Sie ein leeres Repository initialisieren oder wie oben beschrieben kopieren können. So erhalten Sie das von Ihnen beschriebene Szenario:

%Vor%

Dies sollte für Sie gut funktionieren:

Gute Lektüre: Ссылка

    
Geoff Lanotte 07.07.2010, 02:53
quelle
5

Für den ersten Push benötigen Sie etwas wie

%Vor%

Siehe auch die Option push.default .

Wenn Sie später auf ein Problem stoßen, dass Sie auf ein nicht-bare-Repository stoßen, müssen Sie das ebenfalls lesen.

    
Eli Barzilay 07.07.2010 01:59
quelle
1

Wenn Sie immer noch zu einem ausgecheckten Zweig eines Remote-Nicht-Bare-Repos wechseln möchten, ist dies jetzt möglich (Git 2.3.0, Februar 2015), vorausgesetzt, es sind keine modifizierten Dateien im Zielarbeitsbaum vorhanden.

In diesem Remote-Repo:

%Vor%

Es ist sicherer als config receive.denyCurrentBranch=ignore : es erlaubt den Push nur, wenn Sie die laufende Modifikation nicht überschreiben.

Siehe committe 1404bcb von Johannes Schindelin ( dscho ) :

  

receive-pack : füge eine weitere Option für receive.denyCurrentBranch hinzu

     

Beim Synchronisieren zwischen Arbeitsverzeichnissen kann es nützlich sein, den aktuellen Zweig über ' push ' anstatt ' pull ' zu aktualisieren, z. wenn Sie einen Fix von einer VM aus ausführen oder wenn Sie eine Korrektur auf dem Computer eines Benutzers durchführen (wo es dem Entwickler nicht möglich ist, einen ssh-Daemon zu installieren, ganz zu schweigen vom Passwort des Benutzers).

     

Die übliche Problemumgehung - das Drücken in einen temporären Zweig und das anschließende Zusammenführen auf der anderen Maschine - ist mit diesem Patch nicht mehr notwendig.

     

Die neue Option ist:

%Vor%
  

Aktualisieren Sie den Arbeitsbaum entsprechend, aber verweigern Sie dies, wenn nicht festgeschriebene Änderungen vorliegen.

    
VonC 01.02.2015 10:40
quelle
0

Wie die Fehlermeldung besagt, wird der Zweig, an den Sie versuchen, zu verschieben ( master ), im Repository origin ausgecheckt. Sie könnten dies lösen, indem Sie zu o:/repository gehen und einen anderen Zweig auschecken.

    
Amber 07.07.2010 02:45
quelle

Tags und Links