Ich habe den Master-Zweig gezogen. Im lokalen Master habe ich mehrere Commits gemacht. Jetzt möchte ich nur den letzten Commit (und nicht die vorherigen) schieben. Wie erreiche ich das?Sollten wir das Commit beim Rebasing höher oder niedriger setzen, wenn wir es nur schieben wollen?
Ich fand eine gute Erklärung, wie es geht: How to push only one commit with Git. So sollte der Befehl so etwas wie diese:
git push origin 2dc2b7e393e6b712ef103eaac81050b9693395a4:master
Oder in einer "abstrakt" Form:
git push <remote name> <commit hash>:<remote branch name>
aber soweit ich verstand, in einem allgemeinen Fall, wird es nicht schieben Sie das einzelne Commit (gegeben durch seinen Hash). Stattdessen wird das angegebene Commit sowie alle Commits, die vor dem angegebenen Commit ausgeführt wurden, übertragen.
Um das Ziel zu erreichen (nur einen einzigen Commit ausführen), müssen wir die Commits zuerst so umordnen, dass der Commit, den wir schieben wollen, als der älteste (der erste in der Reihenfolge der Commits) angezeigt wird. . Wie es gemacht wird, ist hier beschrieben: How to reorder commits with Git. Diese Beschreibung ist klar, das einzige, was mich verwirrt diese Phrase ist:
In meinem Fall wollte ich meine oberste begehen bringen, wo ich die Projektdatei bis auf den Boden fixiert, so dass ich nur schieben kann das Commit auf dem Remote-Server.
Aber ist es nicht so, dass wir eine Art Gegenteil machen wollen? Wenn wir das Commit "nach unten" bringen, wird es als das letzte (neueste) Commit betrachtet, und wenn wir seinen Hash verwenden, wenn wir pushen, werden wir alles vorantreiben, was davor kommt (was "alle Commits" bedeutet). .
Also, was wir tun möchten, ist unsere Commit höher in der Datei, die wir sehen, wenn wir git rebase -i HEAD~5
ausführen. Habe ich recht?
Aber was, wenn ich nicht aus dem Repository ziehe, an das ich drücke? – Roman
Ist etwas falsch mit meinem Ansatz? – Roman
@Roman ist es egal. Sie können die URL dynamisch im Remote-Repository angeben, wenn Sie 'git push' oder' git pull' (einschließlich 'git fetch') ausführen. 'git push KOPF: ', 'git ziehen ', wo 'branchA' und' branchB' den gleichen Namen haben können. Wenn "urlA" und "urlB" konstant sind, können Sie sie als eine oder zwei Fernbedienungen hinzufügen. Eine Fernbedienung hat zwei Werte, einen zum Drücken und den anderen zum Abrufen. –
ElpieKay