Wie befehle ich nur bestimmte Zeilen mit SmartGit / Hg

7

Ich verwende SmartGit / Hg. Ich habe einige Dateien bearbeitet, die an zwei separaten neuen Funktionen arbeiten. Jetzt, da ich mit der Arbeit an Feature A fertig bin, möchte ich meine Arbeit übernehmen, aber ich kann nicht einfach alle meine bearbeiteten Dateien übernehmen, da sie Änderungen von Feature B enthalten. was ich jetzt nicht begehen möchte.

    
Christian 24.06.2014, 12:25
quelle

1 Antwort

21

Sie erreichen dies mit dem Befehl . Vor allem stage alle Dateien, die Änderungen enthalten, die übergeben werden sollen. In diesem Beispiel enthalten alle Dateien mit Ausnahme von DoNotCommit.php mindestens eine Zeile, die wir festschreiben möchten:

Als nächstes müssen wir den Indexeditor für alle Dateien öffnen, die Zeilen von Feature A und Feature B . In diesem Beispiel müssen wir Main.php und NewFeatures.php überprüfen:

Dies öffnet den Indexeditor . Sie sehen drei Registerkarten mit Ihrem Code: Repository (HEAD) , Index , Arbeitsbaum :

Für uns sind nur das Repository (HEAD) und das Register wichtig. Auf der Registerkarte Repository (HEAD) wird der bereits festgeschriebene Inhalt der Datei angezeigt. Die Registerkarte Index zeigt die Änderungen an, die wir vornehmen werden. Nehmen wir an, wir wollen nur den ersten Codeblock mit der Funktion myNewCompletedFeature festschreiben:

Wie Sie sehen, entfernen wir den gesamten Code, den wir nicht festlegen möchten, über die Registerkarte Index . Dadurch wird nicht der Code aus dem Arbeitsbaum entfernt, sodass Sie keine Änderungen verlieren. Jetzt machen wir dasselbe mit unserer neuen Datei NewFeatures.php und speichern sie erneut:

Im letzten Schritt werden wir das neue Feature tatsächlich festschreiben. Stellen Sie sicher, dass Sie im Commit-Fenster Inszenierte Änderungen auswählen!

Wow, wir sind jetzt fertig!

    
Christian 24.06.2014, 12:25
quelle