Case 1: If your file is in the repository, use the following command:
git add --patch <filename>
Git will begin to break down your file into what it thinks is sensible portions of the file, also called "hunks."
Git will then prompt this question:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
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
Case 2: If the file is not in the repository yet, run the following command:
git add -N <filename>
Now, run the following command
git add --patch <filename>
Tips:
Use the following command to check that you staged the correct changes:
git diff --staged
To unstage mistakenly added hunks run the following command
git reset -p
To view your commit while you edit the commit message.
git commit -v
For more information please go through the following tutorial to get more info about git: