Frage

Möglicherweise gibt es mehr als eine Möglichkeit, diese Frage zu stellen. Hier finden Sie eine Beschreibung des Problems.Ich habe am Master gearbeitet und einige Dinge festgeschrieben und dann beschlossen, dass ich diese Arbeit auf Eis legen möchte.Ich habe ein paar Commits gesichert und bin dann davon abgezweigt, bevor ich mit meiner Mistarbeit begonnen 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 dort sind meine Junk-Arbeiten nicht enthalten und die besagte 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 dafür sorgen, dass sich alle von mir gesicherten Commits in einem anderen Zweig befinden?

Vielen Dank für alle (schnellen) Antworten!Sie sind alle gut.

War es hilfreich?

Lösung

Zusätzlich zu den anderen Kommentaren finden Sie möglicherweise den Schalter -m (move) zu git-branch hilfreich.Sie könnten Ihren alten Master in etwas anderes umbenennen und dann Ihren neuen Zweig in Master umbenennen:

git branch -m master crap_work
git branch -m previous_master master

Andere Tipps

Ich denke, Sie sollten eine andere Entwicklungsstrategie in Betracht ziehen, um solche Probleme zu verhindern.Für mich scheint es am besten zu funktionieren, die Entwicklung niemals direkt in meinem Hauptzweig durchzuführen.Unabhängig von den Änderungen, die ich vornehme, erstelle ich immer einen neuen Zweig für neuen Code:

git checkout -b topic/topic_name master

Von dort aus kann ich die Änderungen an öffentliche Repositorys weitergeben:

git push pu topic/topic_name

oder irgendwann einfach wieder mit meinem Hauptzweig zusammenführen:

git checkout master && git merge topic/topic_name

Wenn Sie wirklich zu einem älteren Zeitpunkt zurückkehren und diesen als Ihren Master festlegen müssen, können Sie den aktuellen Zweig in einen anderen umbenennen und dann eine ältere Version als Ihren Master auschecken:

 git branch -m master junk
 git co -b master old_sha1_value

Beginnen am master, erstellen Sie einen Zweig mit dem Namen in-progress, dann zurücksetzen master zu einem früheren Commit.

$ git branch in-progress
$ git reset --hard HEAD^

Das geht relativ einfach:

git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master               # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master                # optional -- switch on to your master branch

Dadurch wird Ihr Master in einem Schritt auf einen beliebigen Punkt eingestellt:

git checkout -B master new_point
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top