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 in a file?
You can do
git add --patch filename.x (or
-p for short), and git will begin breaking down your file in what it thinks are sensible "hunks" (portions of the file). You will then be prompted with this question:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
And here the meaning of each option:
If the file is not in the repository yet, do first
git add -N filename.x. Afterwards you can go on with
git add -p filename.x.
You can use than:
git diff --staged afterwards to check that you staged the correct ones
git reset -p to unstage incorrect hunks
git commit -v to view your commit while you edit the commit message.
Note this is a far different than the
git format-patch command, which is entirely different.