작업 tools/git

git을 사용하여 특정 commit 간 변경된 파일만 추출하기

yztech 2024. 12. 20. 10:35
반응형

Git을 사용하여 특정 커밋 간 변경된 파일만 추출하는 방법을 소개합니다.


1. 변경 사항 목록 추출

특정 커밋 간에 변경된 파일 목록을 텍스트 파일로 저장하려면 다음 명령어를 사용합니다:

git diff --name-only [Start Commit] [End Commit] > [File Name].txt
  • [Start Commit]: 시작 커밋 해시 (또는 HEAD^).
  • [End Commit]: 끝나는 커밋 해시 (또는 HEAD).
  • [File Name].txt: 변경된 파일 목록을 저장할 텍스트 파일 이름.

예제:

git diff --name-only HEAD^ HEAD > changes.txt

결과:
changes.txt 파일에 변경된 파일 이름이 라인 단위로 기록됩니다.


2. 변경된 파일 추출 (압축 파일로 저장)

변경된 파일만 압축 파일(zip)로 저장하려면 다음 명령어를 사용합니다:

git archive -o [File Name].zip [End Commit] $(git diff --name-only [Start Commit] [End Commit])
  • [File Name].zip: 추출할 파일을 저장할 ZIP 파일 이름.
  • [Start Commit]: 시작 커밋.
  • [End Commit]: 끝나는 커밋.

예제:

git archive -o changes.zip HEAD $(git diff --name-only HEAD^ HEAD)

결과:
changes.zip 파일에 변경된 파일이 압축됩니다.


3. 참고

  • 커밋 해시 조회:
    • commit 옆에 있는 해시 값(영문+숫자)을 사용합니다.
    • HEAD: 현재 커밋.
    • HEAD^: 이전 커밋.
  • git log
  • 추출된 파일 저장 경로:
    • 압축 파일은 프로젝트 최상위 디렉터리에 생성됩니다.

4. 요약

  1. 변경된 파일 목록만 추출:
  2. git diff --name-only [Start Commit] [End Commit] > changes.txt
  3. 변경된 파일을 압축 파일로 추출:
  4. git archive -o changes.zip [End Commit] $(git diff --name-only [Start Commit])

이 방법을 활용하면 특정 커밋 간에 변경된 파일만 빠르게 확인하거나 추출할 수 있습니다.

반응형