본문 바로가기
프로그래밍/Github

[github] git에서 특정 commit을 로컬에 불러오는 방법

by iwbap 2024. 6. 12.
728x90

1. 특정 커밋으로 체크아웃하기

특정 커밋으로 이동하여 그 시점의 파일 상태를 확인하거나 작업을 진행할 수 있습니다. 이 경우 현재 브랜치는 'detached HEAD' 상태가 되며, 새로운 커밋을 생성하면 현재 브랜치가 아닌 해당 커밋에서 분기된 새로운 커밋이 생성됩니다.

[bash]

git checkout <commit_hash>

 

예를 들어, 특정 커밋 해시가 'abc123'라면 다음과 같이 입력합니다.

[bash]

git checkout abc123

 

 

2. 특정 커밋의 내용을 현재 브랜치에 병합하기

특정 커밋의 변경 사항을 현재 브랜치로 병합하려면 'git cherry-pick' 명령어를 사용합니다. 이 명령어는 지정된 커밋의 변경 사항을 현재 브랜치에 적용합니다.

[bash]

git cherry-pick <commit_hash>

 

예를 들어, 특정 커밋 해시가 'abc123'라면 다음과 같이 입력합니다.

[bash]

git cherry-pick abc123

 

 

3. 특정 커밋에서 새로운 브랜치 생성하기

특정 커밋을 기반으로 새로운 브랜치를 생성할 수도 있습니다. 이렇게 하면 그 커밋을 시작점으로 하여 새로운 작업을 진행할 수 있습니다.

[bash]

git checkout -b <new_branch_name> <commit_hash>

 

예를 들어, 특정 커밋 해시가 'abc123'이고 새로운 브랜치 이름이 'feature-branch'라면 다음과 같이 입력합니다.

[bash]

git checkout -b feature-branch abc123

 

 

4. 특정 커밋의 파일을 현재 작업 디렉토리로 가져오기

특정 커밋에서 특정 파일을 가져오고 싶을 때는 'git checkout' 명령어를 사용하여 해당 파일만 체크아웃할 수 있습니다.

[bash]

git checkout <commit_hash> -- <file_path>

 

예를 들어, 특정 커밋 해시가 'abc123'이고 파일 경로가 'src/main.c'라면 다음과 같이 입력합니다.

[bash]

git checkout abc123 -- src/main.c

 

 

요약

  • git checkout <commit_hash> : 특정 커밋으로 이동 (detached HEAD 상태).
  • git cherry-pick <commit_hash> : 특정 커밋의 변경 사항을 현재 브랜치에 적용.
  • git checkout -b <new_branch_name> <commit_hash> : 특정 커밋을 시작점으로 새로운 브랜치 생성.
  • git checkout <commit_hash> -- <file_path> : 특정 커밋의 특정 파일을 현재 작업 디렉토리로 가져오기.

이 명령어들을 통해 특정 커밋을 로컬에 불러와 다양한 작업을 수행할 수 있습니다.

728x90