https://stackoverflow.com/questions/1085162/commit-only-part-of-a-file-in-git/1085191#1085191 git add --patch (or -p for short), Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? Here is a description of each option: y stage this hunk for the next commit n do not stage this hunk for the next commit q quit; do not stage this hunk or any of the remaining hunks a stage this hunk and all later hunks in the file d do not stage this hunk or any of the later hunks in the file g select a hunk to go to / search for a hunk matching the given regex j leave this hunk undecided, see next undecided hunk J leave this hunk undecided, see next hunk k leave this hunk undecided, see previous undecided hunk K leave this hunk undecided, see previous hunk s split the current hunk into smaller hunks e manually edit the current hunk ? print hunk help 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 changes git reset -p to unstage mistakenly added hunks git 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 https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging