0

Ein Kollege von mir hat irgendwie seine HEAD-Revision eines Release-Zweiges gedrängt, an dem mein Team arbeitet. (Das wären 145 falsch gedrückte Commits)Git - Revert Großer Commit-Verlauf von Pushed Head zum falschen Zweig

Ich möchte unsere Commit-Geschichte sauber halten, also spiele ich mit der Idee, ob ich etwas tun soll, oder erstelle einfach einen neuen Entwicklungszweig, um mit der Arbeit zu beginnen.

Ich mache auf dem Zweig mehrere Verschmelzungen sind

git revert <last-trusted-sha>..HEAD 

Da es nicht einfach (Aus, wenn wir eine Pull-Anforderung tun und Git schafft einen Merge remote_currentbranch currentbranch).

Gibt es eine Möglichkeit, dies leicht zu lösen? Oder gehe ich einfach commit durch Commit, bis es korrigiert ist?

Dank

+0

Wie hat Ihr Kollege HEAD-Version von 'release'-Zweig in' development'-Zweig? Welchen Befehl hat er benutzt? –

+0

'git rebase -i' und alle unerwünschten Commits löschen? –

+0

@ Marina-MSFT Ich bin mir nicht sicher wie es passiert ist, sie haben Eclipse EGit Plugin benutzt. –

Antwort

1

development Zweig wiederherzustellen, Sie unter Befehlen verwenden:

git checkout development 
git reset --hard HEAD~145 
git push -f 

Oder wenn Sie den letzten wissen sha-1-Wert begeht auf dem development Zweig Commits vor auf dem release Zweig geschoben wurden In den Zweig development können Sie auch git reset --hard <last commit> verwenden, um den Befehl git reset --hard HEAD~145 zu ersetzen. Dann würde der Zweig development wiederhergestellt werden. Dies sollte ganz einfach sein, technisch zu beheben

+0

Danke das ist, was ich getan habe. –

0

:

  • Finden Sie die vorherigen, richtig zu begehen, die Sie wiederherstellen möchten.
  • git branch develop THEHASH -f
  • git push origin develop -f

Normalerweise würden Sie so etwas wie dies aus Respekt für Ihre Kollegen nicht tun. Aber in diesem Fall ist sowieso schon alles kaputt, also könnte es genauso gut sein.

Um das korrekte Commit 145 Schritte zurück zu finden, kann git reflog hilfreich sein, es sei denn, Sie können es leicht mit git log finden.