2024. 10. 23. 14:01ㆍGit
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
가끔 코드 리뷰나 협업 과정에서 특정 PR의 커밋 해시를 로컬 환경에서 확인해야 할 때가 있습니다. 이 글에서는 원격 저장소에서 해당 커밋을 로컬로 가져와, 그 해시를 기반으로 브랜치를 생성하는 방법을 설명하겠습니다.
git fetch로 원격 저장소 업데이트
먼저, 원격 저장소에서 최신 정보를 로컬로 가져와야 합니다. 원격 브랜치에서 최신 커밋들이 로컬에 반영되지 않은 경우가 많기 때문이죠.
git fetch origin
이 명령어는 원격 저장소(origin)에 있는 모든 브랜치와 태그 정보를 로컬에 업데이트합니다. 이렇게 하면 나중에 필요한 특정 커밋 해시도 로컬에서 접근할 수 있게 됩니다.
해당 커밋 해시가 있는지 확인하고 직접 체크아웃
먼저 해당 해시가 로컬에 존재하는지 확인하려면, git log 명령어를 사용해 특정 해시를 찾아볼 수 있습니다.
git log --all --grep=<commit-hash>
PR에서 확인하라는 커밋 해시가 있다면, 그 해시를 기반으로 바로 체크아웃할 수 있습니다. 여기서 git log 같은 커밋 검색 과정을 꼭 거칠 필요는 없습니다. 커밋 해시만 알고 있다면 바로 체크아웃해서 해당 커밋을 확인할 수 있습니다.
git checkout <commit-hash>
예를 들어, 커밋 해시가 8e10f21라면 다음과 같이 입력하면 됩니다
이 명령어는 해당 커밋으로 작업 디렉토리를 이동시키고, 그 상태를 로컬에서 확인할 수 있게 해 줍니다.
git checkout 8e10f21
소스트리(Source Tree)를 확인해 보면 특정 브랜치가 아닌 Detached HEAD 상태입니다.
(보통 HEAD는 브랜치를 가리키지만, 특정 커밋 해시로 이동하면 HEAD는 브랜치가 아닌 그 커밋 자체를 가리킵니다.)
이 상태에서 새로운 커밋을 만들거나 수정 작업을 할 수 있지만, 이 작업들은 임시적이며 브랜치에 연결되지 않기 때문에 나중에 잃어버릴 수 있습니다. 따라서 이 상태에서 작업을 계속하고 싶다면, 새로운 브랜치를 생성하여 작업 내용을 안전하게 저장해야 합니다.
해당 커밋 기반으로 브랜치 생성
특정 커밋 해시로 체크아웃한 후, 해당 상태에서 브랜치를 생성하고 싶다면 간단히 다음 명령어를 입력합니다
git checkout -b <new-branch-name>
예를 들어, 커밋 해시 8e10f21를 기반으로 feature/divider-defect라는 새 브랜치를 만들고 싶다면 다음과 같이 실행할 수 있습니다:
git checkout -b feature/divider-defect
이렇게 하면 feature/divider-defect 커밋을 기반으로 새로운 브랜치가 생성되며, 해당 브랜치에서 자유롭게 작업을 이어갈 수 있습니다.
이처럼 Git에서 특정 커밋 해시를 기반으로 브랜치를 생성하는 방법은 매우 간단합니다. 협업 과정에서 특정 커밋을 확인해야 할 때 이 과정을 이용하면 효율적으로 작업할 수 있습니다.
[macOS] Xcode 시뮬레이터를 이용한 웹 페이지 디버깅 방법
Xcode 시뮬레이터를 이용한 웹 페이지 디버깅 방법에 대해서 알아보겠습니다. Xcode 시뮬레이터를 활용한 웹 페이지 디버깅반응형 웹 디자인의 중요성이 점점 커지면서, 다양한 기기에서 웹 페이
dev-chim.tistory.com
[VSCode] 초보자를 위한 VSCode 단축키 가이드: 빠르고 효율적인 개발을 위해
VSCode는 Microsoft에서 개발한 가벼우면서 강력한 오픈 소스 코드 편집기로, 다양한 플랫폼에서 널리 사용되고 있습니다. 이 글에서는 VSCode의 핵심 기능 중 하나인 단축키 설정하는 방법에 대해 다
dev-chim.tistory.com
[git] README.md 파일 작성시, Markdown 문법(Syntax) 사용법
README.md 파일 작성 시, Markdown 문법(Syntax) 사용법에 대해서 알아봅시다. README.md 파일 이란? README.md 파일은 주로 소프트웨어 프로젝트의 루트(Root) 디렉터리에 위치하며, Github, Gitlab, Bitbucket 등의 코
dev-chim.tistory.com
[CSS] 스크롤바(scrollbar) 스타일 제거하는 방법
스크롤바 동작은 유지하면서 스타일을 없애는 방법에 대해 알려드리겠습니다. 대부분의 웹 브라우저는 스크롤바에 대해 일부 CSS 스타일을 지원하므로, 스크롤바를 숨기거나 사용자 정의할 수
dev-chim.tistory.com
[Server] 외부에서 파일을 보다 안전하게 공유하는 방법 (feat. Synology Nas Server)
일을 하다 보면 잠시 자리를 비우는 동안 업무 요청사항이 올 때가 있습니다. 그럴 때마다 바로바로 대응을 해줘야 하는 경우에 마음이 급할 때가 있지요 이런 상황에 외부에서 파일을 보다 안
dev-chim.tistory.com
'Git' 카테고리의 다른 글
[Git] git rebase 취소하는 방법에 대해서 알아보자 (feat. git reflog, git reset) (3) | 2024.12.19 |
---|---|
[Git] GitHub에서 Squash Merge로 프로젝트 히스토리 깔끔하게 정리하기 (0) | 2024.07.07 |
[Git] 2가지 방법으로 변경사항 가져오기 (feat. git checkout, git cherry-pick) (2) | 2024.03.24 |
[Git] Git Stash : 변경사항을 임시로 저장하는 방법 (1) | 2024.03.20 |
[Git] Git 리베이스: 작업 브랜치의 변경 사항을 최신 상태로 유지하는 방법 (0) | 2024.03.19 |