@Hassan – Entschuldigung, nein. Ich habe die Commits, die ich nicht möchte, bereits zurückgesetzt. Das Problem besteht nun darin, dass dies erfolgreich an die Fernbedienung übertragen wird.
– Wille
6. August ’12 um 14:16
Wenn Sie die Commits auf dem Git-Server bereits zurückgesetzt haben, warum können Sie dann nicht ziehen?
– ungültiger Satzbau
6. August ’12 um 14:19
mögliches Duplikat von Git reset –hard und ein Remote-Repository
– Tripleee
6. August ’12 um 16:16
vergent
Von dem git config man-Seite:
receive.denyNonFastForwards
Wenn es auf true gesetzt ist, verweigert git-receive-pack ein Ref-Update, das kein schneller Vorlauf ist. Verwenden Sie dies, um ein solches Update über einen Push zu verhindern, selbst wenn dieser Push erzwungen wird. Diese Konfigurationsvariable wird beim Initialisieren eines gemeinsam genutzten Repositorys festgelegt.
Auf dem Server, auf den Sie Push übertragen möchten, ist diese Einstellung aktiviert. Also, kurze Antwort, ist, dass Sie in diesem Fall nicht in der Lage sein werden, git push --force.
Um die richtige Version des Zweigs an die entfernte Stelle zu übertragen, müssen Sie einen neuen Commit an der Spitze des Zweigs durchführen, der ihn in den richtigen Zustand bringt. Wenn Sie sich gerade beim Commit für den richtigen Status befinden, können Sie Folgendes ausführen:
$ git reset --soft <remote>/<branch> # point the ref back to the remote, but
# keep the index and working tree
$ git commit # make the 'correction' commit
$ git push
Verbietet Ihr Server nicht-Fast-Forward-Push?
Git-Konfigurationsdatei
[receive]
denyNonFastforwards = true
Es scheint standardmäßig deaktiviert zu sein, mit einer Warnung: “Wir empfehlen nicht, diese Einstellungen zu ändern, es sei denn, Sie wissen, was Sie tun. Beanstalk bietet vernünftige Standardeinstellungen, die für die meisten Benutzer sofort funktionieren.” … obwohl das Aktivieren und Forcen Pushen das Problem löst
– Wille
6. August ’12 um 14:19
Erzwingen Sie das Pushen in anderen Branches als master, wenn Sie Topic-Branches verwenden. Das Zusammenführen von zwei Verzweigungen kann zu Codeverlusten führen, da nur Spitzen von gegebenen Verzweigungen verglichen werden. Das Rebasing durchforstet alle Commits seit dem neuesten gemeinsamen Vorfahren und liefert bessere Ergebnisse, erfordert aber das Umschreiben von Commits, die nicht durch Fast-Forwards gehandhabt werden können. Git-Anfänger wissen nicht, was Rebasing ist, daher ist diese Option gut für sie.
– skalee
21. März ’13 um 13:24
Der beste Weg, um Änderungen in git rückgängig zu machen, ist die Verwendung von git revert Befehl.
So machen Sie Ihren letzten Commit rückgängig: git revert HEAD^
es macht Änderungen, die im letzten Commit vorgenommen wurden, rückgängig und erstellt dann darüber ein neues Commit.
Tut Dies dir helfen?
– Hassan
6. August ’12 um 14:15
@Hassan – Entschuldigung, nein. Ich habe die Commits, die ich nicht möchte, bereits zurückgesetzt. Das Problem besteht nun darin, dass dies erfolgreich an die Fernbedienung übertragen wird.
– Wille
6. August ’12 um 14:16
Wenn Sie die Commits auf dem Git-Server bereits zurückgesetzt haben, warum können Sie dann nicht ziehen?
– ungültiger Satzbau
6. August ’12 um 14:19
mögliches Duplikat von Git reset –hard und ein Remote-Repository
– Tripleee
6. August ’12 um 16:16