GitNotes.10-6.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 10.6: 커밋에 포함될 내용을 선택적으로 stage 하기

만약 하나 혹은 여러 파일에 걸쳐 많은 변경사항들이 존재하는 상황에서, 일부 변경사항에 대해서만 커밋을 수행하고 싶다면, 아래와 같은 방법으로 커밋에 포함되길 원하는 변경사항들을 선택할 수 있다:

git add -p

또는

git add -p [file]

위 명령어 수행시 변경사항들이 개별적으로 표시되며, 각 변경사항에 대하여 다음 옵션 중 하나를 선택할 수 있는 대화형 입력 프롬프트가 나타날 것이다:

y - 이 변경사항 조각(hunk) 을 추가한다. n - 이 변경사항 조각을 추가하지 않는다. d - 이 변경사항 조각 및 이후 현재 파일 내의 모든 조각들을 추가하지 않는다. 한 파일 내에서 이미 원하는 변경사항을 추가 완료하여 나머지를 건너뛰고 싶은 경우 유용하다. s - 가능한 경우 이 변경사항 조각을 더 작은 단위의 조각으로 나눈다 e - 현재 변경사항 조각 내용을 직접 편집한다. 이 기능이 아마도 가장 강력한 기능일 것이다. 이 옵션 선택시 편집기가 실행되며, 이를 통해 주어진 변경사항을 필요에 따라 편집할 수 있다.

위에서 소개된 작업을 통해 파일들의 특정 부분들을 선택하여 stage 시킬 수 있을 것이다. 이렇게 stage 된 모든 변경사항들에 대해 이제 아래와 같이 커밋을 수행할 수 있다:

git commit -m 'Commit Message'

위와 같이 stage 및 커밋되지 않은 변경사항들은 여전히 사용자의 작업 디렉토리에 존재하여, 필요한 경우 이후 다른 커밋에 포함시킬 수 있다. 혹은 작업 디렉토리에 남아있는 변경사항들이 불필요한 경우, 아래 명령을 실행하여 제거할 수 있다:

git reset --hard

이러한 방법은 큰 규모의 변경사항을 작은 커밋들로 쪼개는 목적 이외에도, 커밋하려는 내용을 리뷰하기에도 매우 유용하다. 개별 변경사항들에 대해 검토하는 과정을 거침으로써, 스스로 작성한 코드를 확인할 수 있으며 불필요한 로그를 위한 코드 등이 잘못해서 stage 되는 실수 또한 방지할 수 있다.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts