Beste Option
Die wahrscheinlich sauberste, am wenigsten verwirrende und sicherste Möglichkeit, in Ihr nicht nacktes Remote-Repository zu pushen, besteht darin, auf dedizierte Zweige in der Fernbedienung zu pushen, die Ihre Laptop-Zweige darstellen.
Schauen wir uns den einfachsten Fall an und nehmen wir an, dass Sie in jedem Repo nur einen Zweig haben: master. Wenn Sie von Ihrem Laptop auf das Remote-Repo drücken, drücken Sie statt Master -> Master, Master -> Laptop-Master (oder einen ähnlichen Namen). Auf diese Weise wirkt sich der Push nicht auf den aktuell ausgecheckten Hauptzweig im Remote-Repo aus. Um dies vom Laptop aus zu tun, ist der Befehl ziemlich einfach:
git push origin master:laptop-master
Dies bedeutet, dass der lokale Master-Zweig in den Zweig "Laptop-Master" im Remote-Repository verschoben wird. In Ihrem Remote-Repo haben Sie einen neuen Zweig namens "Laptop-Master", den Sie dann in Ihren Remote-Master einbinden können, wenn Sie bereit sind.
Alternative Option
Es ist auch möglich, nur master -> master zu drücken, aber das Verschieben in den aktuell ausgecheckten Zweig eines nicht nackten Repos wird im Allgemeinen nicht empfohlen, da es verwirrend sein kann, wenn Sie nicht verstehen, was los ist. Dies liegt daran, git status
dass beim Verschieben in einen ausgecheckten Zweig der Arbeitsbaum nicht aktualisiert wird. Wenn Sie also in den ausgecheckten Zweig einchecken, in den verschoben wurde, werden genau die entgegengesetzten Unterschiede angezeigt wie beim letzten Verschieben. Besonders verwirrend wäre es, wenn der Arbeitsbaum vor dem Push verschmutzt wäre. Dies ist ein wichtiger Grund, warum dies nicht empfohlen wird.
Wenn Sie versuchen möchten, nur master -> master zu drücken, lautet der Befehl einfach:
git push origin
Wenn Sie jedoch zum Remote-Repo zurückkehren, möchten Sie höchstwahrscheinlich einen Vorgang ausführen, git reset --hard HEAD
um den Arbeitsbaum mit dem Inhalt zu synchronisieren, der übertragen wurde. Dies kann gefährlich sein , da nicht festgeschriebene Änderungen im Remote-Arbeitsbaum, die Sie beibehalten möchten, diese löschen. Stellen Sie sicher, dass Sie die Konsequenzen kennen, bevor Sie es versuchen, oder erstellen Sie zuerst ein Backup!
BEARBEITEN Seit Git 2.3 können Sie "Push-to-Deployment" -Git-Push verwenden: https://github.com/blog/1957-git-2-3-has-been-released . Das Verschieben in einen separaten Zweig und das anschließende Zusammenführen ist jedoch normalerweise besser, da eine tatsächliche Zusammenführung durchgeführt wird (daher funktioniert dies mit nicht festgeschriebenen Änderungen genauso wie die Zusammenführung).