Übertragen Sie ein bestimmtes Commit an ein Remote-Repository

John Wachira 15 Februar 2024
Ü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.

commit history

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.

git rebase

Wir können jetzt den Texteditor verlassen und die Rebase abschließen. Unser Commit-Verlauf sollte nun so aussehen:

commit history 2

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.

  1. Das Erste Commit-Commit
  2. Der Commit Lizenzen aktualisieren.

Lassen Sie uns unseren Fall bestätigen.

Remote-Repository

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 Wachira avatar John Wachira avatar

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.

LinkedIn

Verwandter Artikel - Git Push