jiho_bae
Go devlog
jiho_bae
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (38)
      • theory (34)
      • vanilla (4)
    • HTML & CSS (2)
    • Browser (3)
    • CS (6)
      • linux (1)
      • shell (2)
      • compiler (2)
    • DS & Algorithm (87)
      • theory (5)
      • basic (7)
      • programmers (30)
      • baekjoon (45)
    • Design Pattern (2)
    • Error (4)
    • Git & Github (4)
    • Tools (1)
    • 부트캠프 (4)
    • Small Tips (2)
    • Java (3)
    • test (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 계수정렬 자바스크립트
  • fetch 취소하기
  • 리액트 프로젝트 디버깅하기
  • 깃 이전 커밋에서 새 브랜치 만들기
  • 병합정렬 자바스크립트
  • safari invalid date error
  • 백준 17406 nodeJS
  • 1753 최단경로 javascript
  • 가사 검색 자바스크립트
  • 덧칠하기 javascript
  • 자바스크립트 모듈 시스템
  • 13460 javascript nodejs
  • 억억단을 외우자 javascript
  • 자바스크립트 커링
  • javascript use strict
  • 자바스크립트 sort는 왜 그모양일까
  • 대충만든자판 javascript
  • safari Date format NaN
  • 외벽 점검 javascript
  • 자바스크립트 채팅방 스크롤
  • 자바스크립트 이벤트 위임
  • 퀵정렬 자바스크립트
  • 자바스크립트 비동기 마이크로 태스크 큐와 렌더링 과정
  • 카카오 코딩테스트 양궁대회 nodeJS
  • JavaScript
  • 자바스크립트 배열의 특수함
  • 백준 자바스크립트 입력 템플릿
  • 프로그래머스 숫자카드나누기 javascript
  • 25632 소수 부르기 게임
  • 리코쳇 로봇 javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jiho_bae

Go devlog

[Commit] 과거 커밋으로 돌아가서 새로운 브랜치(분기) 만들기
Git & Github

[Commit] 과거 커밋으로 돌아가서 새로운 브랜치(분기) 만들기

2022. 6. 7. 15:52

목적

기존 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
    'Git & Github' 카테고리의 다른 글
    • [git] git 명령어
    • [git] 깃이란?
    • [깃허브] 깃허브 처음 시작하기 / Github Desktop 어플 (Mac OS)
    jiho_bae
    jiho_bae
    하루에 한 걸음씩

    티스토리툴바