2016-08-07 3 views
1

Ich habe gerade Rebase -i HEAD ~ 5, wollte zu reparieren/Squash 2 meiner Commits ... dann musste Push zwingen und jetzt meine Remote-Filiale hat ein Commit von mir und 4 von jemand anderem. WTF. bitte helft, wie man die anderen 4 Commits von jemand anderem entfernt ?! Ich will nur, dass es dieses eine Commit von mir hat.git rebase -i HEAD ~ 5 und Pull-Anfrage mit nicht meins commits

+0

Bitte bearbeiten Sie Ihre Frage und fügen Sie ein Diagramm der letzten Commits hinzu. Identifizieren Sie diejenigen, die Sie behalten möchten und diejenigen, die Sie entfernen möchten, und zeigen Sie darüber hinaus ein Commit an. – Chris

+0

macht Git Rebase -i HEAD ~ 5 zeigt mir wieder eine Liste von 9999 Commits, muss ich jeden von ihnen manuell verstauen ?! – katarina

+0

Das scheint viel, und auch eine sehr interessante Zahl. Sie müssen wirklich einige Screenshots hinzufügen oder anderweitig mehr Informationen teilen, bevor wir Ihnen helfen können. – Chris

Antwort

1

Wenn Sie eine git rebase -i HEAD~5 tun, erhalten Sie auch alle Commits in einer Zusammenführung.
Sie hatten eine merge commit so hatten Sie mehr Commits, dass die tatsächlichen 5 commits.

Zum Beispiel:
hier ist das Protokoll Screenshot + die git rebase -i HEAD~5, die in 17 Commits führt.

Sie können das Protokoll verfolgen und die 5 Commits auf dem linken Zweig zählen und Sie werden sehen, dass alle anderen Commits auf dem Weg "gesammelt" werden.

enter image description here

+0

wie loszuwerden, dass merge commits ich habe? – katarina

+1

können Sie die '--preserve-merges' hinzufügen, aber es werden alle Commits in Reichweite angezeigt. 'git rebase -i HEAD ~ 5 --preserve-merges' soweit ich weiß kann man es nicht vermeiden, da es eine Rebase mit allen Sequenzen ist – CodeWizard

1

Managed mit git reflog zurück zu gehen und beheben es von dort.

Verwandte Themen