본 문서는 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)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
10.8: 다른 사람을 대신하여 커밋하기 (0) | 2019.10.23 |
---|---|
10.7: 빈 (empty) 커밋 생성하기 (0) | 2019.10.23 |
10.5: 변경 사항들을 곧바로 커밋하기 (0) | 2019.10.21 |
10.4: 편집기를 열지 않고 커밋하기 (0) | 2019.10.21 |
10.3: 커밋 수정(amend) 하기 (0) | 2019.10.21 |