2016-11-14 3 views
1

Ich habe eine Master Zweig. Ich möchte die Commits von dem Punkt eines vorherigen Commits entfernen, das vor zwei Wochen zu diesem Punkt von der Master Verzweigung war.Wie können Sie Commits vom Master entfernen, ohne die Befehle 'revert' oder 'rebase' zu verwenden?

Ich kann nicht git revert wegen einer vorhandenen Rückstellung bereits in diesem Zweig verwenden und Probleme verursachen. Ich bin auf der Suche nach einer Lösung, den HEAD zu einem frühen Punkt begehen oder SHA1 im Master Zweig und festgelegt, dass SHA1 als Master.

+1

Bitte zeigen Sie die Commit-Grafik, die Sie haben und die Sie wollen. Das Nachdenken über Gitoperationen auf andere Weise führt zu Verwirrung. – jthill

Antwort

2

Ich suche eine Lösung, um den HEAD auf ein vorheriges Commit zu verweisen und zu sagen, dass das der Master ist.

Das ist, was reset der Fall ist, wenn der aktuelle Zweig ist master:

git reset SHA1 

Dadurch wird der aktuelle Zweig zurückgesetzt, so dass es auf die angegebene SHA1 zeigen wird (Commit, Zweig, Tag, Baum- ish). Beachten Sie, dass sich Ihr Arbeitsbaum nicht ändert. Wenn sich der Arbeitsbaum von SHA1 unterscheidet, zeigt git diff geänderte und/oder unversionierte Dateien an. Wenn der Arbeitsbaum den Inhalt des SHA1 abgleichen soll, verwenden Sie das Flag --hard.

Beachten Sie, dass Sie, wenn Sie den geänderten Zweig an eine entfernte Stelle übertragen möchten, die bereits vorher gedrückt hat, das -f-Flag mit git push verwenden müssen, da der Verlauf neu geschrieben wurde. Beachten Sie die üblichen Bedenken beim Umschreiben der Geschichte einer öffentlichen Filiale.

Verwandte Themen