아마 대부분 git에 commit 할 때 변경사항 전체를 한 번에 올리기 위해 git add . 을 하거나 원하는 파일만 add를 하는 경우가 많을 텐데요. 이번에 파일 전체를 add하는 것이 아니라 그 중 일부만 올리고 싶을 때에는 어떻게 해야할 지 얘기해보려고 합니다.

-p 옵션

바로 git add할 때 -p옵션을 사용하면 됩니다.

-p 옵션을 사용하면 변경사항 단위로만 staging area에 올려주는데 이러한 변경사항 단위를 Hunk라고 합니다!

현재 제가 작업 중인 파일을 예로 들어서 설명하겠습니다.

스크린샷 2023-02-26 오후 4.19.31.png

현재 수정된 3개의 파일을 git add -p를 통해 하나씩 확인하면서 staging area에 올려보겠습니다.

스크린샷 2023-02-26 오후 4.20.42.png

위에서 보시는 것처럼 변경된 부분을 보여주면서 add를 할 지 말 지 물어봅니다.

이 때 해당 변경사항을 올리고 싶으면 y(yes), 올리지 않고 건너뛰고 싶으면 n(no), 올리고 싶은 부분을 다 올려 추가로 더 이상 올릴 게 없다면 q(quit)로 나가시면 됩니다.

스크린샷 2023-02-26 오후 4.35.52.png

만약 지금처럼 변경사항이 너무 클 때에는 s(split)로 변경사항을 더 쪼갤 수 있습니다.

스크린샷 2023-02-26 오후 4.36.33.png

그럼 보시다시피 hunk가 더 쪼개져서 자세히 물어보는 것을 확인할 수 있습니다.

스크린샷 2023-02-26 오후 4.46.43.png

각 옵션의 역할은 위와 같고 ‘?’를 쳐서 확인할 수 있습니다.

이 기능이 과제를 하면서 많이 쓰일지는 모르겠지만 그래도 알아두면 유용하니 알아두면 좋겠습니다.