Wenn ich in Git Änderungen an einer Datei vornehme, wie kann ich dann nur einen Teil der Änderungen übertragen?
Wie kann ich zum Beispiel nur 15 von 30 geänderten Zeilen einer Datei übertragen?
Wenn ich in Git Änderungen an einer Datei vornehme, wie kann ich dann nur einen Teil der Änderungen übertragen?
Wie kann ich zum Beispiel nur 15 von 30 geänderten Zeilen einer Datei übertragen?
Wenn Sie vim verwenden, können Sie das ausgezeichnete Plugin namens flüchtig .
Sie können den Unterschied einer Datei zwischen Arbeitskopie und Index mit :Gdiff
und fügen Sie dann Zeilen oder Brocken in den Index ein, indem Sie klassische vim diff-Befehle wie dp
. Speichern Sie die Änderungen im Index und bestätigen Sie mit :Gcommit
und schon sind Sie fertig.
Sehr gute Einführungsscreencasts aquí (siehe insb. Teil 2 ).
Ich würde dringend empfehlen, die QuellBaum von Atlassian. (Es ist kostenlos.) Es macht dies trivial. Sie können einzelne Code-Blöcke oder einzelne Code-Zeilen schnell und einfach in Szene setzen.
Ich stimme zu, dass SourceTree ein gutes Werkzeug für diesen Zweck ist, weil es Ihnen eine feinere Kontrolle gibt, als es über die Befehlszeile möglich ist.
@cupcake Ich würde das Gegenteil behaupten, da SourceTree wahrscheinlich diese Kommandozeilen-Git-Executables verwendet, wird es immer möglich sein, die gleichen (oder mehr) feinkörnigen Aktionen über die "Kommandozeile" zu tun.
Unabhängig davon ist die feinkörnig Argument, das ich sehr empfehlen würde QuellBaum denn die Inszenierung von Hunks und einzelnen Linien ist super einfach: i.imgur.com/85bNu4C.png
Wenn ich viele Änderungen habe und am Ende ein paar Commits aus den Änderungen erstellen werde, möchte ich meinen Ausgangspunkt vorübergehend speichern, bevor ich die Dinge bereitstelle.
Zum Beispiel so:
$ git stash -u
Saved working directory and index state WIP on master: 47a1413 ...
$ git checkout -p stash
... step through patch hunks
$ git commit -m "message for 1st commit"
$ git checkout -p stash
... step through patch hunks
$ git commit -m "message for 2nd commit"
$ git stash pop
Die Antwort von Whymarrh ist das, was ich normalerweise tue, außer wenn es viele Änderungen gibt und ich merke, dass ich beim Staging einen Fehler machen könnte, und ich möchte einen festen Zustand haben, auf den ich für einen zweiten Durchgang zurückgreifen kann.
IntelliJ IDEA (und ich schätze, alle anderen Produkte der Serie) hat seit v2018.1 eine eingebaute Unterstützung für partielle Übertragungen.
Zu einfache Methode. Ich fürchte, Intellij IDEA versucht, die letzten Konsolenliebhaber zu töten, die Git zu retten versucht.
Wie können Sie das, was Sie auf der rechten Seite hinzugefügt haben, aufschlüsseln, um nur ein paar Zeilen hinzuzufügen? (grüne Elemente auf der rechten Seite diff angezeigt, wenn es auf mehrere Zeilen ist) Bisher, PyCharm v2020.1.2, können Sie nur alle kontinuierlichen Änderungen in einem Block hinzufügen.
@amiabl Das können Sie nicht (ab v2020.1). Verfolgt von youtrack.jetbrains.com/issue/IDEA-186988
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
8 Stimmen
Zugehörige stackoverflow.com/q/34609924/52074 : wenn Sie einen Brocken in kleinere Stücke teilen müssen.
8 Stimmen
Zusammenfassung: in Bezug auf die Fähigkeiten:
git gui
=git add -e
>git add -i -p
unter dem Aspekt der Bequemlichkeit:git gui
>git add -i -p
>git add -e
. Also: auswählengit gui
wenn Sie Zugang zu X haben.git add -i -p
für einfache Dinge und wenn Sie X nicht verwenden müssen oder wollen.git add -e
für komplexe Inszenierungen ohne X.