Definition „Push-Befehl (Versionsverwaltung)“ Was ist ein Push?
Mit dem Push-Befehl einer Software-Versionsverwaltung ist der Anwender in der Lage, eigene Revisionen eines Softwareprojektes auf einen Remote-Server hochzuladen. Im Folgenden werden die Funktion „git push“ und wichtige Parameter besprochen.

Das Befehlszeilen-Kommando „git push“ wird immer dann verwendet, wenn man Inhalte aus einem eigenen lokalen Repository an ein Remote-Repository schicken möchte (etwa nach Modifikationen, Erweiterungen oder Fehlerbehebungen in einem Software-Projekt). Mit dem Push-Befehl werden Commits aus dem lokalen Bearbeitungsstand in ein Remote-Repository auf einem Github-Server hochgeladen.
Das Gegenteil von „git pull“ ist „git fetch“. Hier wird ein Commit von einem Remote-Branch abgeholt, wogegen ein Push Commits in ein Remote-Branch exportiert. Ferne Remote-Branches können mittels „git remote“ konfiguriert werden.
Bei der Anwendung des Push besteht jedoch die Gefahr, dass Änderungen auf dem Remote-Branch überschrieben werden können. Aus diesem Grund sollte man „git push“ erst nach mehrmaligen Überlegen und mit Bedacht anwenden, um mögliche Fehler auf dem Remote-Branch zu vermeiden.
Der Push-Befehl wird meist dann verwendet, wenn lokale Änderungen eines Software-Projektes in einem zentral verwalteten Repository hochgeladen und veröffentlicht werden sollen. Sobald Änderungen an einem Repository auf dem eigenen Rechner getätigt wurden, werden die vorgenommenen Änderungen per Push für alle Teammitglieder, die an diesem Projekt mitarbeiten, freigegeben und können somit auch zur Diskussion gestellt werden.
git push und seine Parameter
Die grundlegende Syntax lautet:
git push
Mit dieser Befehlszeile sendet man den Branch an das Remote-Repository. Dabei werden alle notwendige Commits sowie interne Objekte ebenfalls zum Server hochgeladen. Auf diese Weise wird im Remote-Repository ein eigener Branch erstellt. Um zu verhindern, dass vorhandene Commits überschrieben werden, blockiert Git jene Push-Vorgänge, die ein Nicht-Fast-Forward-Merge im Remote-Repository auslösen könnten.
Mit der force-Option (git push --force) wird der Push in jedem Fall erzwungen, und zwar auch dann, wenn dadurch ein Nicht-Fast-Forward-Push angestoßen wird. Deshalb sollte das Flag „--force“ nur dann angewendet werden, wenn man sich wirklich sicher ist.
Wenn man alle lokalen Versionsstände – also sämtliche eigenen Branches – zum Remote-Branch schicken möchte, verwendet man die all-Option nach folgendem Muster:
git push --all
Push immer nur in leere Repositories!
Es ist dringend anzuraten, ausschließlich in Repositories zu pushen, die zuvor mit der bare-Option erstellt wurden. Der Push-Befehl kann unter Umständen die Struktur eines Remote-Branches durcheinanderbringen. Deshalb ist es sehr wichtig, niemals in die Repositories anderer Entwickler zu pushen. Leere Repositories haben dagegen kein eigenes Arbeitsverzeichnis, sodass hier nicht die Arbeit anderer Team-Mitarbeiter gefährdet werden kann.
(ID:48765653)