2017-06-07 3 views
0

Mein Anwendungsfall ist sehr üblich.Git ein Commit zurück und fügen Änderungen hinzu, auch nachdem weitere Commits folgten

Ich habe ein Commit hinzugefügt, das mein Build-System durchlaufen hat. Einige Post-Commit-Tests auf dem Build-System sind fehlgeschlagen. Das System ist so konfiguriert, dass ein solches Commit rückgängig gemacht wird.

Also fügte das System auch eine Reverting back revision my-commit hinzu.

Jetzt habe ich die Korrekturen hinzugefügt, um den Build zu korrigieren. Aber jemand anderes hat 2 Commits über den Revert gemacht, die erfolgreich waren, bevor ich meins hineinschieben konnte.

So jetzt mein Zustand ist:

$ git log 

commit good-commit1 
author: good-dev1 
... 

commit good-commit2 
author: good-dev1 
... 

commit good-revert-commit 
author: system 
... 

commit my-bad-commit 
author: me 
... 

Beide good-commit1 und good-commit2Änderungsdateien, die ich in my-bad-commit modifiziert.

Wie füge ich meine Fixes über my-bad-commit hinzu oder stelle die good-revert-commit um, füge Korrekturen hinzu und setze dann die guten Commits des anderen Devs erneut ein?

Hinweis: Unser System erlaubt -f (force push) nicht zum Master-Zweig.

+0

Da Ihre 'Master'-Verzweigung nicht erlaubt ist, Push zu drücken, können Sie' git revert' nur am Anfang des Commit-Verlaufs verwenden. Andernfalls können Sie 'git rebase -i' verwenden oder den aktuellen' master'-Zweig usw. ersetzen. –

+0

Hat die Antwort Ihnen geholfen, das Problem zu lösen? Wenn ja, bitte markieren Sie es. Und es wird anderen helfen, die ähnliche Fragen haben. –

Antwort

1

zurückkehren einfach die revert mit

git revert good-revert-commit -n 

-n ist ein Synonym für --no-commit hier.

Also die Änderungen werden im Index sein, dann git add Ihre zusätzlichen Änderungen, beenden Sie das Commit und drücken.

Verwandte Themen