When I make changes to a file in Git, how can I commit only some of the changes?
For example, how could I commit only 15 lines out of 30 lines that have been changed
You can use git add --patch (or -p for short), and git will begin to break down your file into what it thinks are sensible "hunks" (portions of the file). It will then prompt you with this question:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
Here is a description of each option:
If the file is not in the repository yet, you can first do git add -N . Afterwards you can go on with git add -p .
Afterwards, you can use:
git diff --staged to check that you staged the correct changesgit reset -p to unstage mistakenly added hunksgit commit -v to view your commit while you edit the commit message.Note this is far different than the git format-patch command, whose purpose is to parse commit data into a .patch files.
Reference for future: Git Tools - Interactive Staging