Es kann mehrere Möglichkeiten geben, diese Frage zu stellen. Hier ist eine Beschreibung des Problems. Ich arbeitete am Master und engagierte einige Sachen und entschied dann, dass ich diese Arbeit auf Eis legen wollte. Ich habe ein paar Commits gesichert und mich dann verzweigt, bevor ich mit meiner Mistarbeit angefangen habe. Praktisch funktioniert das gut, ich habe gerade einen anderen Zweig als meinen Hauptentwicklungszweig. Ich frage mich, wie ich die Dinge ändern könnte, damit ich wieder am Master arbeite, aber es gibt keine Junk-Arbeit und die Arbeit befindet sich in einem anderen Zweig.
Einige Möglichkeiten, wie dies gefragt / gelöst werden könnte: Wie benenne ich meinen Hauptzweig in etwas anderes um und benenne dann etwas anderes in Master um? Wie kann ich den Master sichern und dann bewirken, dass sich alle Commits, die ich in der Vergangenheit gesichert habe, in einem anderen Zweig befinden?
Danke für all die (schnellen) Antworten! Sie sind alle gut.
[branch "crap_work"]
zum Lesen gewechselt ,[branch "master"]
damit der Master immer noch synchronisiert wirdorigin/master
. Natürlich war der Zustand der beiden Repos so, dass dies immer noch Sinn machte.git push -uf origin master
undgit push -u origin crap_work
.Ich denke, Sie sollten eine andere Entwicklungsstrategie in Betracht ziehen, um solche Probleme zu vermeiden. Eine, die für mich am besten zu funktionieren scheint, ist, niemals direkt in meinem Master-Zweig zu entwickeln. Unabhängig von den Änderungen, die ich vornehme, erstelle ich immer einen neuen Zweig für neuen Code:
Von dort aus kann ich die Änderungen an öffentlichen Repositories veröffentlichen:
oder füge es irgendwann einfach wieder in meinen Hauptzweig ein:
Wenn Sie wirklich zu einem älteren Zeitpunkt zurückkehren und diesen als Ihren Master festlegen müssen, können Sie den aktuellen Zweig in etwas anderes umbenennen und dann eine ältere Version als Ihren Master auschecken:
quelle
Beginnen Sie mit
master
, erstellen Sie einen Zweig mit dem Namenin-progress
und setzen Sie ihnmaster
auf ein früheres Commit zurück.quelle
Das ist relativ einfach:
quelle
git checkout -b
erstellt einen Zweig und macht ihn aktiv.Dies setzt Ihren Master in einem Schritt auf einen beliebigen Punkt:
quelle