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:
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%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: Ссылка
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.
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
) :
%Vor%
receive-pack
: füge eine weitere Option fürreceive.denyCurrentBranch
hinzuBeim 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:
Aktualisieren Sie den Arbeitsbaum entsprechend, aber verweigern Sie dies, wenn nicht festgeschriebene Änderungen vorliegen.
Tags und Links git version-control versioning