개발관련/Git

Git에서 파일의 일부만 커밋

Rateye 2021. 6. 13. 20:58
728x90
반응형
질문 : Git에서 파일의 일부만 커밋

Git에서 파일을 변경할 때 일부 변경 사항 만 커밋하려면 어떻게해야합니까?

예를 들어 파일에서 변경된 30 줄 중 15 줄만 커밋 할 수 있습니까?

답변

git add --patch <filename> (또는 -p 를 사용할 수 있으며, git은 파일을 합리적이라고 생각하는 "hunks"(파일의 일부)로 분해하기 시작합니다. 그러면 다음 질문이 표시됩니다.

Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?

다음은 각 옵션에 대한 설명입니다.

  • y 다음 커밋을 위해이 덩어리를 준비
  • n 다음 커밋을 위해이 덩어리를 준비하지 마십시오.
  • q 종료; 이 덩어리 또는 나머지 덩어리를 준비하지 마십시오.
  • 상기 파일에이 덩어리와 이후의 모든 심술쟁이 무대
  • d 파일에서이 덩어리 또는 이후 덩어리를 준비하지 마십시오.
  • g 갈 덩어리를 선택
  • / 주어진 정규식과 일치하는 덩어리 검색
  • j 이 덩어리를 미정으로 남겨두고 다음 미정 덩어리를 참조하십시오.
  • J 는이 덩어리를 미정으로두고, 다음 덩어리를 봐
  • k 이 덩어리를 미정으로 두십시오. 이전 미정 덩어리를 참조하십시오.
  • K 는이 덩어리를 미정으로 남겨두고, 이전 덩어리를 참조하십시오.
  • s 현재 덩어리를 더 작은 덩어리로 나눕니다.
  • e 현재 덩어리를 수동으로 편집
  • ? 덩어리 도움말 인쇄

파일이 아직 저장소에없는 경우 먼저 git add -N <filename> 수행 할 수 있습니다. git add -p <filename> 계속할 수 있습니다.

나중에 다음을 사용할 수 있습니다.

  • git diff --staged 를 사용하여 올바른 변경 사항을 준비했는지 확인
  • git reset -p to unstage to unstage added hunks
  • 커밋 메시지를 편집하는 동안 커밋을 보려면 git commit -v

.patch 파일로 구문 분석하는 것을 목적 git format-patch 명령과는 매우 다릅니다.

향후 참조 : Git 도구-대화 형 스테이징

출처 : https://stackoverflow.com/questions/1085162/commit-only-part-of-a-file-in-git
728x90
반응형