Übertragen Sie ein bestimmtes Commit an ein Remote-Repository
In diesem Artikel wird der Vorgang beschrieben, mit dem ein bestimmtes Commit in ein Remote-Repository in Git übertragen wird. Angenommen, wir haben ein Git-Repository mit mehreren Commits und wir müssen nur einen Commit pushen, wie würden wir vorgehen?
Übertragen Sie ein bestimmtes Commit an ein Remote-Repository
Um einen einzelnen Commit in das Remote-Repository zu pushen, verwenden wir den Git-Push-Befehl im unten gezeigten Kontext.
$ git push <remote> <commit id>:<remote branch>
Wie immer werden wir ein Beispiel verwenden, um das Konzept zu veranschaulichen.
Das folgende Beispiel zeigt ein Demo
-Repo mit vier Commits, wie in der Abbildung unten gezeigt.
Angenommen, wir möchten das initiale
Commit in das entfernte Repository verschieben. Wie würden wir vorgehen?
Angenommen, wir pushen zum ersten Mal in das Remote-Repository, gehen wir wie folgt vor.
Zuerst fügen wir das Remote-Repo zu unserem lokalen Repo hinzu, wie unten gezeigt.
$ git remote add origin https://github.com/Wachira11ke/Demo.git
Um das initiale
Commit auf die Fernbedienung zu pushen, führen wir Folgendes aus:
$ git push origin 6b0f31a:refs/heads/master
Da wir zum ersten Mal auf das Remote pushen, müssen wir das Argument refs/heads/master
verwenden, um einen master
-Zweig im Remote-Repository zu erstellen. Dieser Befehl wird nur unser Initial
-Commit an das Remote-Repo übertragen.
Was ist, wenn wir nur den ersten Commit pushen wollen, d. h. Lizenzen aktualisieren
?
Das Ausführen von git push origin c87321d:master
hat nicht den gewünschten Effekt.
Dies liegt daran, dass Git alle Commits zu und einschließlich des angegebenen Commits pusht. Das wollen wir nicht, oder?
Wir müssen die Commits neu anordnen, sodass das erste Commit das letzte ist. Unser Commit Update Licences
sollte unmittelbar nach dem Initial commit
kommen.
Wir können dies tun, indem wir den Befehl git rebase
im interaktiven Modus ausführen, wie unten gezeigt.
$ git rebase -i HEAD~3
Dieser Befehl öffnet einen Texteditor. Wir werden den Befehl pick
verwenden und die Commits neu anordnen, wie unten gezeigt.
Wir können jetzt den Texteditor verlassen und die Rebase abschließen. Unser Commit-Verlauf sollte nun so aussehen:
Wir können das Commit jetzt wie unten dargestellt in das Remote-Repository verschieben.
$ git push origin 20136f7:master
Unser Remote-Repository sollte nur zwei Commits enthalten.
- Das
Erste Commit
-Commit - Der Commit
Lizenzen aktualisieren
.
Lassen Sie uns unseren Fall bestätigen.
Hier hast du es.
Zusammenfassend lässt sich sagen, dass git push <remote> <commit id>:<remote branch>
es uns ermöglicht, einen bestimmten Commit in das Remote-Repository zu pushen.
Der Befehl pusht jedoch alle Commits zu und einschließlich des angegebenen Commits. Um dies zu beheben, müssen Sie Ihre Commits mit dem Befehl git rebase
neu anordnen, wie wir gezeigt haben.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedInVerwandter Artikel - Git Push
- Commit und pushen Sie eine einzelne Datei auf die Remote
- Führen Sie mit Git einen anfänglichen Push zu einem Remote-Repository durch
- git add, git commit und git push in One Command
- Git Push hängt
- Git Push zum Überschreiben von Dateien im Remote-Repository erzwingen
- Git-Push zu einem anderen Zweig mit einem anderen Namen