위에서 작성된 스테이징 방식(git add file
)이 파일 단위라면, 여기서 언급되는 스테이징 방식은 작업의 변경사항 단위로 스테이징하는 방법이다.
하나의 파일 안에서도 변경한 부분이 몇 가지가 될 수 있는데, 이 때 git add file
을 사용하면 파일이 통째로 스테이징된다. 그러나 git add -p
를 사용하면 변경사항 단위로만 스테이징 할 수 있다. 더 편하고 더 분명하게 버전관리 할 수 있다고 생각된다.
이 때의 변경사항 단위를 Hunk라고 한다.
test 폴더를 만들어서 실습을 해보았다.
생성한 파일(test.html)에 세 줄의 코드를 추가하고, Hunk 명령어를 입력하였다.
1 | $ git add -p |
여기서 s
는 split을 의미한다. 세 줄을 한 꺼번에 스테이징하기 보다 더 세분화해서 스테이징하기 위해 split을 하는거다. split을 한 결과는 다음과 같다. git add -p
에서 응답할 수 있는 명령어는 아래 정리해두었다.
하나의 hunk가 3개의 hunk로 쪼개져서 각각 스테이징 할 수 있었다. 세 줄의 코드중 마지막 줄 코드만 스테이징 하지 않기로 했다.
다시 git add -p
을 입력해보니 아까 스테이징 하지 않은 한 줄의 코드만 스테이지 여부를 묻고, 나머지 코드는 스테이징 되었음을 확인할 수 있었다.
이처럼 git add -p
를 사용하면, 변경사항 단위로 더 세분화해서 스테이징 하는 것이 가능하다.
git add -p
에서 응답할 수 있는 명령어는 ?
을 입력하면 볼 수 있는데, 다음과 같다.
주로 쓰이는 명령어는 y
, n
, q
이다.
y
: 해당 hunk를 스테이징한다.
n
: 스테이징하지않고 건너뛴다.
q
: add 과정을 종료한다.
e
: 변경사항을 더 작게 쪼개는 명령어이다.