[ git & github ] Git Rebase | 특정 커밋 수정하기 / 삭제하기

2021. 2. 18. 06:18·Archive/ETC
728x90
반응형

 

 

이 포스팅은 구름 에듀 강좌의 "Git으로 시작하는 협업 및 오픈소스 프로젝트" 를 기반으로 작성되었습니다.

이 강의의 강사이신 "나동빈" 님의 자료임을 밝힙니다.

상업적인 의도가 아닌, 공부한 것을 정리해놓는 목적의 포스팅입니다.

 

 

edu.goorm.io/learn/lecture/11528/git으로-시작하는-협업-및-오픈소스-프로젝트/info

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io



ndb796.tistory.com/

 

안경잡이개발자

프로그래밍 강의를 진행하는 공간입니다.

ndb796.tistory.com

 

 

 


 

 

@ Git Rebase

 

 

커밋 메세지를 수정하거나, 특정한 커밋 자체를 제거하고자 할 때 효과적으로 사용된다.

 

실습을 위해 하나의 디렉토리를 생성하고  git init을 통해 초기화 시켜준다.

 

 

만들고 난 후 아무파일이나 하나 생성해준다.

 

생성 후 add, commit해준다.

 

 

 

 

 

 

다음으로 txt파일을 수정해준 후 다시 add commit 해준다.

 

 

 

 

 

 

그다음 파일을 지운 후 add commit 해준다.

 

 

 

 

 

 

이번엔 exam2.txt 파일을 생성하고 add commit 해준다.

 

 

 

 

이후 깃 로그를 출력해보면 아래와 같이 4개의 커밋 로그가 출력된다.

 

 

 

 

 

이중에서 Delete exam.txt 의 커밋 메세지를 수정해보도록 하자

 

 

@ Rebase 실습

 

 

cmd 창에 아래와 같은 명령어를 입력한다.

 

git rebase -i HEAD~3

 

i : 인터레티브 모드 어떻게 수정할 건지 편하게 관리할 수 있다.

HEAD~3 : head를 기준으로 최근 3개의 내역만 확인 하겠다는 의미이다.

 

 

 

 

 

아래쪽에 보면 다양한 명령어들이 소개되어있다.

 

이 중 reword 옵션은 커밋은 그대로 사용하되, 커밋 메세지만 바꿔주는 기능을 가지고 있다.

 

 

 

 

수정해주고, 저장을 해주면

 

바로 어떻게 커밋 메세지를 바꿀 것인지 표시된 페이지가 뜬다.

 

 

 

 

 

여기서 커밋 메세지를 Delete 가 아닌, Drop으로 바꿔주자.

 

 

그리고 저장 후 git log 명령어를 통해 다시 로그를 확인한다.

 

 

 

 

Drop 으로 변경된 것을 확인할 수 있다.

 

만약 특정 커밋을 넣어주고 싶거나,

혹은 너무 head와 떨어져있는 커밋을 수정해야 한다면 해시값을 통한 수정도 가능하다.

 

아래와 같은 형식으로 사용하면 된다.

git rebase -i 해시값

 

이렇게 해시 값을 넣게 되면 넣은 이 값을 기준으로 head (젤 최근 커밋 된 곳)까지 출력이 된다.

 

 

 

 

@ 특정 커밋 자체를 삭제하기

 

git rebase -i HEAD~3

 

위 명령어를 다시 입력해보자.

 

 

 

 

옵션 중 drop은 커밋을 지워주는 역할을 한다.

 

없애고자 하는 커밋을 drop키워드를 넣고 저장해준다.

 

 

 

 

 

이후 커밋 로그를 출력해보면, 커밋이 사라진 것을 확인할 수 있다.

 

 

 

mkdir 명령어를 입력해보자.

 

 

 

 

exam.txt 가 다시 생겨났다. 삭제한 내역이 사라졌기 때문에 다시 생성된 것이다.

 

 

특정 커밋 자체가 애초에 존재하지 않았던 것처럼 성공적으로 동작한 것을 확인할 수 있다.

 

 

 



 

728x90
반응형

'Archive > ETC' 카테고리의 다른 글

[ git & github ] Git Commit 날짜 변경 | 깃허브 커밋 날짜 변경하는 법  (0) 2021.02.18
[ git & github ] Git 환경 설정 | Git config  (0) 2021.02.18
[ git & github ] Git Archive | 깃허브 소스코드 압축  (0) 2021.02.18
[ git & github ] Git Hub README.md 작성 | 마크다운 언어  (1) 2021.02.18
[ git & github ] Git 로그 | GitHub Log 관리  (0) 2021.02.18
'Archive/ETC' 카테고리의 다른 글
  • [ git & github ] Git Commit 날짜 변경 | 깃허브 커밋 날짜 변경하는 법
  • [ git & github ] Git 환경 설정 | Git config
  • [ git & github ] Git Archive | 깃허브 소스코드 압축
  • [ git & github ] Git Hub README.md 작성 | 마크다운 언어
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    Oracle
    백준 문제풀이
    코드업
    카카오 100일 프로젝트
    장고
    자바스크립트 API
    비박스
    오라클
    파이썬 문제
    Codeup
    파이썬 알고리즘
    C++
    Django
    oracle db
    백준 파이썬
    백준 풀이
    Git
    자바스크립트
    javascript
    파이썬 백준
    파이썬 기초 문제
    자바스크립트 객체
    코드업 기초
    보안뉴스
    파이썬
    docker
    백준
    파이썬 기초
    Python
    코드업 파이썬 기초 100제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ git & github ] Git Rebase | 특정 커밋 수정하기 / 삭제하기
상단으로

티스토리툴바