2.1 KiB
2.1 KiB
Git Add Methods
Git Add Lines
git add -e
Select lines of changes interactively. This allows you to stage only specific lines of changes in a file.
Pros: More control over what gets staged.
Cons: More manual work, you have to edit the patch file yourself, which can be error-prone and time-consuming.
Guidelines:
- The editor shows a unified diff patch of working tree changes.
+lines: additions in the working tree (will be staged if kept).-lines: deletions in the working tree (will be staged if kept).- Context lines (no prefix): unchanged lines needed for patch context.
- To stage a change: keep the
+or-line in the patch. - To NOT stage a change: delete the
+or-line from the patch. - To keep a line unchanged: leave context lines as-is.
- Never change
+or-to spaces or vice versa — this breaks the patch format and causes "patch does not apply" errors. - To remove an added line (
+) from being staged, delete the entire line.- If you break the patch, run
git checkout -- <file>to undo, then rungit add -eagain.
- If you break the patch, run
Git Add Hunks
git add -p
Select hunks of changes interactively. This allows you to stage only parts of the changes in a file.
Pros: Easier to use than the -e method for staging specific parts of changes.
Cons: Sometimes split won't work, which will force you to use the -e method.
Guidelines
- Run
git add -p <file>orgit add -pto go through patch hunks interactively. - For each hunk, choose:
yto stage this hunknto leave it unstagedsto split the hunk into smaller partseto edit the hunk manuallyqto quit and leave remaining hunks unstagedato stage this hunk and all remaining hunksdto leave this hunk and all remaining hunks unstaged
- If you choose
s, Git will attempt to split the hunk into smaller hunks so you can stage a smaller section. - If you choose
e, Git opens the patch in a temporary editor; delete+or-lines you do NOT want staged, then save and close. - When finished, run
git statusto verify which hunks were staged.