AI 본캠프/TIL

24/01/07 TIL(15주차 수요일) - 커밋

impact7608 2025. 1. 8. 23:40

 

git log --oneline

 

예제 출력:

 
abc1234 Fix typo in chatbot API
def5678 Add chatbot page template
ghi9012 Update README for installation guide

git reset --hard <commit_hash>

 

 

 

 

 

 

1. 특정 커밋으로 이동하기 (Detached HEAD 상태)

특정 커밋으로 이동할 때는 HEAD를 해당 커밋으로 이동시켜. 이렇게 하면 현재 브랜치의 상태를 바꾸지 않고 커밋 내용을 확인하거나 수정할 수 있어.

bash
코드 복사
git checkout <커밋 해시>
  • <커밋 해시>는 git log 명령어를 통해 확인할 수 있어.
  • Detached HEAD 상태란 브랜치가 아닌 커밋에 직접 이동했을 때의 상태야. 이 상태에서 작업 후 커밋을 하면 새 브랜치로 관리해야 기존 브랜치에 영향을 주지 않아.

2. 특정 커밋으로 이동 후 브랜치로 작업 이어가기

Detached HEAD 상태로 작업하지 않고 새 브랜치를 만들어 작업을 이어가고 싶다면:

bash
코드 복사
git checkout -b <새로운 브랜치 이름> <커밋 해시>
  • 이 명령어는 특정 커밋을 기반으로 새 브랜치를 생성해서 그 브랜치로 바로 이동해.

3. 특정 커밋 상태로 돌아가 브랜치 덮어쓰기 (Reset)

현재 브랜치를 특정 커밋으로 되돌리고 싶다면 reset을 사용해.

bash
코드 복사
git reset --hard <커밋 해시>
  • 주의: --hard 옵션은 현재 브랜치의 변경사항이 모두 삭제되므로 꼭 필요한 경우에만 사용해!

4. 특정 커밋 이후로 되돌리기 (Revert)

이전 커밋으로 돌아가되, 변경 내역은 보존하고 싶다면 revert를 사용해.

bash
코드 복사
git revert <커밋 해시>
  • 이 명령어는 지정된 커밋의 내용을 되돌리는 새로운 커밋을 생성해. 기존 작업 내역을 유지하면서 수정하는 방식이야.

5. 브랜치를 특정 커밋으로 강제 이동 (Reset to Commit)

현재 브랜치를 특정 커밋으로 강제 이동시키고 싶다면:

bash
코드 복사
git reset --hard <커밋 해시>

6. 특정 커밋에서 파일만 가져오기 (Cherry-pick)

특정 커밋의 변경 사항만 현재 브랜치에 적용하려면 cherry-pick을 사용해.

bash
코드 복사
git cherry-pick <커밋 해시>

7. 작업 확인 후 원래 상태로 복원하기

특정 커밋으로 이동한 후 원래 상태로 돌아오고 싶다면:

bash
코드 복사
git checkout <브랜치 이름>
  • 원래 작업하던 브랜치로 돌아가.

💡 요약

  • 커밋 확인만 → git checkout <커밋 해시>
  • 커밋 기반으로 새 브랜치 생성 → git checkout -b <브랜치 이름> <커밋 해시>
  • 브랜치 되돌리기 → git reset --hard <커밋 해시>
  • 안전하게 되돌리기 → git revert <커밋 해시>