Ich habe einen anderen Repo gegabelt, um Pull-Requests dafür zu erstellen. In dem hier beschriebenen Zeitraum trägt niemand anderes zu diesem Repo bei.Warum haben Rebase und Hard Reset unterschiedliche Ergebnisse gebracht?
Meine ersten Commits sende ich als eine Pull-Anfrage an den Remote-Repo. Dies wird akzeptiert. Meine zweite Pull-Anforderung weist Fehler auf, die behoben werden müssen, aber dies erfordert, dass die Dateien in einen vorherigen Zustand zurückversetzt werden, da ich die Formatierung abgebrochen habe, da mein Editor sie in ein anderes Format ändert.
Dies scheint etwas zu sein, für das ich rebase verwenden kann. Wenn ich jedoch "git rebase upstream/master" benutze, während mein Master-Zweig ausgecheckt ist, wird mir gesagt, dass der aktuelle Zweig-Master auf dem neuesten Stand ist. Mein Zweig ist derzeit ein Commit vor dem Upstream, und mein Verständnis von Rebase ist, dass es HEAD auf meinem Zweig zum letzten Commit in dem Zweig verschieben sollte, gegen den ich rebasiere.
Während reading the documentation zu sehen, was ich falsch gemacht hatte, bemerkte ich, dass "git reset --hard" das gleiche tun sollte. Also habe ich "git reset --hard upstream/master" gemacht und dies hat den gewünschten Effekt, HEAD auf die akzeptierte Pull-Anforderung von mir zu verschieben.
Meine Frage ist, dass beide dasselbe tun sollen, warum habe ich unterschiedliche Ergebnisse bekommen?
Nein, das ist nicht was Rebase tut. Es dauert eine Commit, die Sie angeben (remote HEAD oder was auch immer) und _replays_ Ihre lokalen Commits darüber. –
Lesen Sie den Abschnitt BESCHREIBUNG von 'git help rebase' sorgfältig durch. Da gibt es gute Beispiele. 'rebase' soll nicht dasselbe tun wie' reset --hard'. –