Back

Explore Courses Blog Tutorials Interview Questions
+2 votes
2 views
in DevOps and Agile by (19.4k points)
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?

1 Answer

+1 vote
by (27.5k points)
edited by

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:

 

Related questions

0 votes
1 answer
+6 votes
1 answer
asked Jul 3, 2019 in DevOps and Agile by chandra (29.3k points)
0 votes
1 answer

Browse Categories

...