Ich möchte zwei letzte Commits mit Commit-Nachrichten "erste" und "zweite" Squash. Zunächst ziehe ich Master dann verwende ich den Befehlmöchte mehrere Commits in GitHub Squash
git rebase -i HEAD~2 master
Es zeigt mir, beide wie dies in einem Editor verpflichtet:
pick first
pick second
Dann wechsle ich diesen Editor als:
pick first
squash second
Nach dem Speichern die Änderungen, die ich diese Nachricht erhalten habe:
Successfully rebased and updated refs/heads/master.
Es hat alles im Remote-Master geändert. Um diese Änderungen zu übernehmen ich die git push
Befehl und bekam folgende Fehlermeldung:
To https://github.com/aneelatest/GITtest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/test/GITtest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Dann wieder ich den git pull
Befehl ausführen und es origin master verschmelzen und machen eine andere begehen mit dieser Nachricht begehen:
Merge branch 'master' of https://github.com/aneelatest/GITtest
Danach, wenn ich git push laufen lasse, zerquetsche ich die beiden Commits mit der Nachricht "first" in eins. Das Problem ist, dass in entfernten Master, ich habe jetzt vier Commits:
first
second
Merge branch 'master' of https://github.com/test/GITtest
first
Wo ich einer will nur begehen, welche die zerquetscht eines mit Commit-Nachricht „ersten“. Irgendwelche Ideen, wo ich Fehler mache ??
Sie müssen nicht mehr quetschen: der Besitzer kann es für Sie tun (seit März 2016): siehe http://stackoverflow.com/a/36377439/6309 – VonC