목적
기존 react 프로젝트에 nextJS를 입혀서 현재 nextJS를 조금씩 학습하고 있었다.
그러던 도중 이전의 react 프로젝트에 이것저것 실험해보고 싶은게 생겼다.
그래서 이번 포스팅의 목적은, nextJS 적용 이전 커밋으로 돌아가서 새로운 브랜치를 개설하는 것이다.
요약해보면 이 그림을 수행할 것이다.
돌아가려는 커밋의 해시 찾기
우선 돌아가고자 하는 커밋의 해시를 찾아야 하는데, 커밋 해시를 보기 위해선 두가지 방법이면 충분하다.
1. 깃허브 프로젝트 저장소 이용하기
2. 로컬 프로젝트 폴더에서 터미널 이용하기
아래 내용을 보고, 둘 중에 하나의 방법을 고르면 되겠다.
1. 깃허브 프로젝트 저장소 이용하기
프로젝트 저장소에서 커밋 로그를 보면,
4640c2b~ 라는 해시가 있다.
해시 전체는 4640c2b91fa356467985a8da1fd0c6e53d0a9235 이지만
앞 6글자 4640c2만 기억하면 된다.
2. 로컬 프로젝트 폴더에서 터미널 이용하기
프로젝트 폴더의 터미널에서 git log를 입력하면
HEAD가 위치한 커밋부터 이전의 커밋들을 모두 볼 수 있다.
그래서 마찬가지로 원하는 커밋을 찾아서, 그 커밋의 해시 앞 6자를 기억하면 된다.
이제 해당 커밋으로 돌아갈 차례다.
git checkout 4640c2
switching~ 4640c2 라는 메시지와 함께
현재의 상태에서 어떤 것을 할 수 있고.. 새 브랜치를 어떻게 생성할 수 있으며 삭제는 어떻게 가능한지 친절하게 알려준다.
그리고 4640c2의 커밋으로 이동했기 때문에, 좌측 탐색기에 담긴 파일들이 그 커밋 시점의 파일의 스냅샷으로 변했다.
이제 원하던 nextJS가 없는 react 프로젝트 커밋으로 돌아왔다.
git log를 입력해보면
HEAD가 4640c2 커밋을 바라보고 있다.
이제 새로운 브랜치를 만들 차례다.
리액트로 이것저것 해볼 생각이니 브랜치 이름은 그냥 react-playground로 정했다.
git branch react-playground
git switch react-playground
git branch 혹은 git log 를 실행해보면
새로운 브랜치 react-playground가 보인다.
이제 이 브랜치에서 여러 작업들을 하고 나면 커밋들이 쌓일 것이고
해당 커밋을 github에 올려줘서 기록을 남겨보자.
방법은 이전과 같다.
git commit -m “커밋 메시지" 로 커밋을 기록했다면,
git push origin react-playground 을 수행한다.
origin(remote 저장소인 github)에 react-playground 라는 브랜치에 push 하겠다는 의미다.
현재 github에는 react-playground 브랜치가 존재하지 않는데, 걱정할 필요는 없다.
push 명령어를 수행하면 알아서 생성된다.
그럼 github 프로젝트에 노란색 문구가 뜨는데, 해당 브랜치로 이동해보면
새로운 브랜치와 그 브랜치에서 쌓은 커밋이 보인다.
4640c2 커밋도 보이고, 그 위에 쌓인 Docs:README 업데이트 커밋이 있다.
특정 과거 시점으로부터 새 브랜치 개설하기는 끝이다.
TMI
만약 브랜치를 잘못 생성했다면?
깃헙 브랜치 목록의 View all branches에서
휴지통 버튼을 눌러 날려버리자.
로컬의 브랜치는 git switch master 라던가 git checkout 4640c2 등으로
현재 react-playground를 삭제할 시 영향을 받지 않을 다른 시점으로 옮겨 준 후
git branch -D react-playground 를 입력해주면 깔끔하게 삭제된다.
두 브랜치의 최근 시점으로 전환할 때는
git switch 브랜치이름의 switch 명령을 이용하면 된다. 🏋🏿♀️
'Git & Github' 카테고리의 다른 글
[git] git 명령어 (0) | 2021.07.24 |
---|---|
[git] 깃이란? (0) | 2021.07.24 |
[깃허브] 깃허브 처음 시작하기 / Github Desktop 어플 (Mac OS) (2) | 2021.04.27 |