Wie entferne ich Commits, die darauf warten, auf die entfernte Seite verschoben zu werden?
Meine Situation ist, dass diese eingereihten Commits (Änderungen) bereits gepusht wurden (mehr unten) und der Server es nun ablehnt, diese hinter dem HEAD zu akzeptieren.
Ich habe versucht, auf ein anderes Commit zurückzusetzen, aber wenn ich zurück zu HEAD gehe, erscheinen die Pushs wieder.
Klicken auf Repository & gt; Refresh Remote Status wird nicht helfen, es hat tatsächlich den 2. wartenden Push hinzugefügt :)
PS: Ich entschuldige mich für meine Terminologie, ich bin ziemlich neu bei Git.
.
Update 1
Probleme traten auf, als ich feature2 zum Verwalten der Verzweigung festlegte. Ich habe keine Rechte, mich zu verpflichten, also blieb es stecken. Dann habe ich mich wieder in meiner persönlichen Abteilung engagiert, das war in Ordnung. Dann habe ich einen wartenden Commit, niemals gedrängt zu werden, selbst wenn ich den richtigen (persönlichen) Zweig wähle, wenn ich auf Push klicke.
Git commits bilden ein Commit-Diagramm. Zweige werden nur als Zeiger für Commits in diesem Diagramm bezeichnet.
In Anbetracht dessen kann Ihre Frage als
wiederholt werdenMein lokaler master Zweig verweist auf einen anderen Commit als der entfernte master Zweig. Wie stelle ich meine lokale master Verzweigung auf denselben Commit wie die entfernte master Verzweigung?
Es gibt zwei Möglichkeiten, dies zu erreichen. Verschieben Sie den Remote-Zweig ( git push
) oder
Verschieben Sie den lokalen Zweig ( git reset
). Wie Sie bereits gesagt haben, können Sie nicht auf den Remote master Zweig zugreifen, so dass die Option 1 nicht in der Tabelle ist und Option 2 übrig bleibt.
Beachten Sie, dass die Funktion reset
auf dem derzeit ausgehenden Zweig 1 aktiv ist. Sie müssen also zuerst sicherstellen, dass Sie sich im Zweig master befinden und diesen Zweig dann verschieben verzweigen Sie zu demselben Commit wie der entfernte Zweig master .
Nun, da Master und Ursprung / Master sich auf demselben Commit befinden, sollten keine Push-Commits erfolgen.
reset
operiert auf dem aktuellen HEAD, aber für diese Erklärung ist es einfacher, es als Zweigbetrieb zu betrachten. Für weitere Informationen siehe diese Frage: Was ist HEAD in Git?
. Haben Sie versucht: git reset --hard HEAD~1
?
Auf diese Weise haben Sie den Kopf wieder auf Ihrem lokalen Repo. Ansonsten habe ich eine lustige Seite gesehen, die nützlich sein könnte: Ссылка
In den meisten Fällen sollten diese Dinge mit der Befehlszeile anstelle der GUI (in diesem Fall SourceTree) gelöst werden.
Ich hoffe, es hilft!
Tags und Links git atlassian-sourcetree commit git-commit push