VSCode와 Git Graph를 활용해 과거 커밋으로 이동, 현재 브랜치로 복귀하기

손지민·2024년 9월 7일
1

GitHub

목록 보기
12/12
post-thumbnail
post-custom-banner

개요

Git을 사용하면서 과거 특정 커밋 시점의 코드 상태를 확인해야 할 때가 종종 있습니다. 이번 글에서는 VSCodeGit Graph를 활용해 과거 커밋을 탐색하고, 그 후 다시 현재 브랜치로 복귀하는 방법을 소개하겠습니다.

요약

  1. VSCode 에 Git Graph 플러그인 설치
  2. 이동을 원하는 commit 우클릭 Checkout... 클릭으로 이동
  3. 기존으로 복귀 할 때도 2번과 동일

1. Git Graph 설치 및 활성화

먼저 Git Graph를 설치해야 합니다. Git Graph는 시각적으로 브랜치와 커밋 히스토리를 관리할 수 있는 플러그인으로, 브랜치 간의 관계를 한눈에 파악할 수 있습니다.

Git Graph 설치 방법:

  1. VSCode 확장 마켓으로 이동합니다.
  2. Git Graph를 검색한 후 설치합니다.
  3. 설치 후 VSCode 왼쪽 탐색 패널Git Graph 아이콘이 추가됩니다.

2. 과거 커밋 탐색하기

Git Graph를 사용하여 원하는 과거 커밋으로 이동할 수 있습니다.

과정:

  1. Git Graph 활성화: VSCode 좌측 패널에서 Git Graph 아이콘을 클릭하여 커밋 그래프를 엽니다.
  2. 커밋 히스토리 탐색: 시각적으로 브랜치와 커밋 흐름을 확인할 수 있습니다.
    • 각 커밋을 클릭하면 상세 정보를 볼 수 있으며, 커밋 간의 변경 사항도 확인할 수 있습니다.
  3. 커밋 체크아웃: 원하는 커밋을 클릭한 후, "Checkout this commit" 옵션을 선택합니다.
    • 이 작업을 하면 detached HEAD 상태가 되며, 해당 커밋 시점으로 이동하여 코드가 실행됩니다.

3. 과거 커밋에서 프로젝트 실행 및 테스트

과거 커밋 상태에서 프로젝트를 실행해보고, 해당 시점의 코드가 제대로 동작하는지 확인할 수 있습니다. 이 시점에서는 해당 커밋의 상태만을 확인할 수 있으며, 로컬 브랜치에는 영향을 주지 않습니다.


4. 현재 main 브랜치로 복귀하기

테스트가 완료된 후, 다시 현재 main 브랜치로 복귀할 수 있습니다. 과거 커밋을 체크아웃한 상태에서는 Git이 detached HEAD 상태에 있으므로, 브랜치로 돌아가야 합니다.

과정:

  1. VSCode 터미널 열기: 터미널을 열기 위해 Ctrl + ~ (Windows/Linux) 또는 Cmd + ~ (macOS)를 누릅니다.
  2. 현재 main 브랜치로 복귀:
    • 터미널에서 다음 명령어를 입력해 main 브랜치로 돌아옵니다:
      git checkout main
  3. 최신 main 브랜치로 업데이트 (필요한 경우):
    • 만약 main 브랜치가 로컬에서 최신 상태가 아니면, 원격 저장소에서 최신 상태를 가져옵니다:
      git pull origin main

이 과정을 통해 다시 현재 브랜치의 최신 상태로 안전하게 복귀할 수 있습니다.


5. 변경 사항 없이 돌아오는 방법

만약 과거 커밋에서 파일을 수정하지 않았다면, 변경 사항 없이 쉽게 현재 브랜치로 돌아올 수 있습니다. 파일을 수정했을 경우 Git에서 경고 메시지가 나타나며, 다음과 같은 옵션을 선택할 수 있습니다:

  1. 변경 사항을 버리고 돌아가기:

    git checkout main --force
    • 이 명령어는 변경 사항을 버리고 강제로 main 브랜치로 돌아갑니다.
  2. 변경 사항을 저장하고 돌아가기:

    • 만약 변경 사항을 저장하고 싶다면, 새로운 브랜치로 변경 사항을 커밋한 후 main 브랜치로 복귀할 수 있습니다:
    git checkout -b temp-branch  # 새 브랜치 생성
    git checkout main  # main 브랜치로 돌아오기

결론

VSCode와 Git Graph를 사용하면 과거 커밋을 시각적으로 탐색하고, 현재 브랜치로 안전하게 복귀할 수 있습니다. 과거 커밋에서의 코드 상태를 테스트하거나, 브랜치 간의 흐름을 파악할 때 매우 유용합니다. 변경 사항이 없다면 간단히 브랜치로 돌아올 수 있고, 변경 사항이 있을 경우에도 적절하게 관리할 수 있습니다.

설명은 길었지만, 맨 앞 요약과 같이 우클릭으로 간단하게 이동이 가능합니다.

profile
Developer
post-custom-banner

0개의 댓글