Ich habe Git als Quellcode-Management-Tool verwendet. Vorerst mein Workflow ist einfach:Was wäre der beste Workflow, um Refactorings mit neuen Funktionen in Git zu mischen?
- denken über eine minimale neue Funktion/Refactoring
- Code es
- Bewertung ist die diff mit HEAD
- begehen
Ich mag würde verbessern diesen Workflow, indem Sie ihn flexibler machen. Der Grund ist, dass ich die folgende Situation ein paar Mal getroffen habe, was ich für typisch halte:
Nach einem Commit fange ich an, das Arbeitsverzeichnis zu modifizieren, um ein neues Feature hinzuzufügen.
Ich Code für eine Weile, lassen Sie den Zustand des Arbeitsverzeichnisses in diesem Moment A sein. Wichtig ist hier, dass Status A das Arbeitsverzeichnis nicht bereit zum Commit ist, da das neue Feature noch nicht abgeschlossen ist.
An diesem Punkt merke ich, dass es besser wäre, zuerst ein Refactoring durchzuführen. Geben Sie es zu, manchmal wird die Notwendigkeit eines Refactorings im Prozess der Codeänderung offensichtlich.
Jetzt muss ich wieder von HEAD beginnen und das Refactoring zuerst machen. Ich will aber nicht die Änderung des Codes HEAD verlieren -> Zustand A. Also im Grunde muß ich:
- das Refactoring tun in einer Kopie des Arbeitsverzeichnisses, die noch nicht nach dem letzten geändert wird, begehen
- begehen es
- die Arbeit an der neuen Funktion verschmelzen, die ich angefangen habe und es gestoppt, wenn das Arbeitsverzeichnis A
- vervollständigen die Arbeiten an der neuen Funktion es
- begehen
Ich glaube, das ist, wo Verzweigung kann mir helfen, aber ich habe Probleme bei der Bestimmung der richtigen Git-Befehle. Ich bin verwirrt von der Tatsache, dass ich eine Verzweigung erstellen muss, wenn das Arbeitsverzeichnis nach einem Commit geändert wird und ich nicht den richtigen Weg kenne, damit umzugehen.
Wie kann der obige Workflow in Bezug auf Git-Befehle beschrieben werden?