Wenn ich in git ein paar Hunks aus derselben Datei in meinem Index habe, wie kann ich dann einen von ihnen interaktiv entfernen?
Gibt es eine Alternative zum Aufheben der Bereitstellung der gesamten Datei und zum erneuten Bereitstellen der Hunks, die ich behalten möchte, oder zum manuellen Rückgängigmachen der Änderungen an der Arbeitskopie und zum interaktiven Hinzufügen dieser rückgängig gemachten Änderungen?
git stash save --keep-index
Ihre aktuellen Änderungen an der Arbeitskopie speichern und zurücksetzen. Anschließend können Sie Ihre Datei zurücksetzen und die gewünschten Änderungen rückgängig machen. Wenn Sie die Datei zuerst an einen temporären Speicherort kopieren, könnendiff
Sie die rückgängig gemachten Änderungen speichern. Anschließend können Sie die Datei wieder hinzufügen (kein interaktives Hinzufügen erforderlich, da Sie die anderen Änderungen, an denen Sie nicht interessiert waren, verstaut haben). Verwenden Sie diese Optiongit stash pop
, um die alten Änderungendiff
wiederherzustellen und die Änderungen, die Sie rückgängig gemacht haben, anzuwenden. Ziemlich umständlich ... :-(The short form -p also works for both commands.
.. Du meinstgit reset -p filename
?git add -p filename
Änderungen aus dieser Datei werdengit reset -p filename
selektiv inszeniert und Änderungen werden selektiv aufgehoben. Es gibt auchgit checkout -p -- filename
eine Möglichkeit, Änderungen aus einer Datei selektiv zu verwerfen. Warnung: Jedes vonadd
undreset
kann verwendet werden, um das andere der beiden rückgängig zu machen. Wenn Sie jedoch diese Form verwendencheckout
, um eine Änderung zu verwerfen, können Sie sie nicht zurückerhalten.git gui
hat eine anständige GUI, um interaktiv Hunks oder Lines zu inszenieren oder zu entfernen. Es gibt hübschere / bessere GUI-Clients, die jedochgit gui
leichtgewichtig, integriert und plattformübergreifend sind (lin, win, mac).https://git-scm.com/docs/git-gui
Klicken Sie einfach mit der rechten Maustaste auf ein Stück, um die Bühne zu verlassen. Markieren Sie bei Linien zuerst die Linien und klicken Sie dann mit der rechten Maustaste.
quelle
GitX hat eine schöne Benutzeroberfläche zum Aufheben der Bereitstellung von Teilen einer Datei:
Der offizielle Client wurde seit einiger Zeit nicht mehr gewartet, aber in einigen Kreisen ist ein Fork Over bei GitHub mit mehr Funktionen beliebt. ( Blogbeitrag darüber )
quelle
git gui