Ich habe einen Fall, in dem git pull
meine commits löscht. Hier ist, wie leicht der Fall zu reproduzieren:git pull löschen commits
- die lokale Niederlassung hat man begehen, dass es ausdrückt vor dem Remote-Tracking-Zweig
git push
- auf der Remote-Repo ein
git update-ref -d refs/heads/<branch> <branch>~1
erfolgt. Ja, ich weiß ... bitte frag nicht warum oder sag nicht einfach, dass ich das nicht machen soll. Es hat etwas mit Backend-Automatisierung zu tun, die diesen Thread weit weg vom Thema bringen könnte. Wie auch immer ... - zurück in dem lokalen Repo,
git pull
- führende commit verschwunden
Im Grunde, was passiert ist, dass ich branch.<branch name>.rebase
Satz wahr habe, und auf diesem rebase Schritt die Semantik es säumige von --fork-point
, die (ich denke) im Grunde von der Spitze des Reflogs des lokalen Zweiges abwärts iteriert und prüft, ob der SHA im Reflog des entfernten Nachverfolgungszweiges existiert. Sobald es in beiden vorhanden ist, ist das der Gabelungspunkt. In diesem kleinen Eckfall ist es jedoch nicht der eigentliche Gabelpunkt. Der richtige Verzweigungspunkt wird tatsächlich zurückgegeben, wenn der Remote-Verfolgungszweig und die lokalen Verzweigungsargumente in der Befehlszeile ausgetauscht werden.
Ist es möglich,
--no-fork-point
einstellen die Standardeinstellung für Rebasieren sein? Ich sah die git config documentation an und nicht offensichtlich nichts finden konnte, die--fork-point
offIch habe versucht, mit git Aliasing verwandeln würde, aber es ist umständlich und erfordern jede unkonventionellen Befehl leider
AFAIK, die irgendeine Art von 'git pull' ausführen, kann nicht dazu führen, dass Commits gelöscht werden. Im schlimmsten Fall würde 'git pull --rebase' dazu führen, dass einige Ihrer Commits _re_redritten_ sind und auf einige Dinge auf der Fernbedienung gespielt werden, aber selbst in diesem Fall würden sie nicht gelöscht werden. –
@TimBiegeleisen: leider, wenn 'git pull' 'git rebase' (wie es tut, wenn Sie' Zweig haben. .rebase' auf 'true' gesetzt), erhalten Sie den Gabel-Punkt-Code. –
torek
@torek Ich bin mir völlig nicht bewusst, dass dies passieren kann. Vielleicht fügen Sie Ihrer Antwort einige Informationen hinzu, wenn Ihnen danach ist. –