seo0h
Hello seo
seo0h
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • PJ Summary (1)
    • Study (27)
      • FE-Study (8)
      • PS (12)
      • JAVA (1)
      • Error log (1)
      • PJ log (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프리온보딩
  • FeedbackDay
  • sideproect
  • head tag
  • react
  • 취준컴퍼니
  • PS STUDY
  • 원티드 프리온보딩
  • 코딩테스트
  • 개발자회고
  • 백준
  • typescript
  • Web
  • java
  • javascript
  • 프로그래머스
  • Programmers
  • html
  • til
  • 2022회고

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
seo0h

Hello seo

[PJ Log] git rebase로 커밋 히스토리 정리하기
Study/PJ log

[PJ Log] git rebase로 커밋 히스토리 정리하기

2023. 3. 5. 22:54

git branch를 병합하기 전 commit history를 정리하는 것을 깜빡하고 push까지 해버린 상황에 처했다.

rebase

이럴때는 rebase를 이용하면 된다고 한다.

1. 현재 브랜치부터 수정하고 싶은 commit 위치까지 HEAD~ 에 적는다.

//git rebase -i HEAD~(수정하고싶은 commit까지의 거리)
git rebase -i HEAD~5

2. Rebase Vim에서 수정할 commit을 선택, 수정하고 싶은 커밋의 pick을 reword로 변경, 저장 후 나간다.

//before
pick (commint id) 'some commit message' 

//after
reword (commint id) 'some commit message'

3. 그럼 경고 창이 뜰 텐데, e를 누르면 커밋 메시지를 편집할 수 있다. 

rebase는 한 브랜치에서 변경된 사항을 Patch 하여 적용하는 것이기 때문에,
수정한 커밋 이후로 중복되는 commit이 main브랜치에도 적용된 모습을 볼 수 있다.
main 에는 중요한 Commit 이외의 것을 올리면 가독성이 떨어지기 때문에,
브랜치에서 rebase를 적절히 활용해 main으로 병합하는 습관을 들여야겠다.

주의점

rebase는 로컬에서 작업중일때만 사용해야 한다. 원격 레포에 push전엔 확인을 꼼꼼하게 하기..... 
혼자가 아닌 여러명이서 작업중일때 원격 레포지토리에 rebase를 하면 전체적으로 다 한번 꼬이기 때문.
-----
아래는 수정하는데 필요한 약간의 vim 단축키...

더보기

커서 뒤에 insert: i
커서 아래줄 추가 후 insert : o
커서 윗줄 추가 후 insert: O
저장 후 나가기 : esc 누르고 wq 

 

Git - Rebase 하기

Git에서 한 브랜치에서 다른 브랜치로 합치는 방법으로는 두 가지가 있다. 하나는 Merge 이고 다른 하나는 Rebase 다. 이 절에서는 Rebase가 무엇인지, 어떻게 사용하는지, 좋은 점은 뭐고, 어떤 상황에

git-scm.com

 

저작자표시 (새창열림)

'Study > PJ log' 카테고리의 다른 글

Next.js Cors Error 처리 (feat. API Routes, TypeScript)  (0) 2023.06.02
[PJ Log] React 프로젝트에 Next js 적용  (0) 2023.03.06
[log.] 원티드 프리온보딩 인턴십 : 프론트엔드 숏 에세이  (0) 2023.02.13
[Side Project] 일정 관리 어플 개발 (1) : 시작  (0) 2023.01.15
    'Study/PJ log' 카테고리의 다른 글
    • Next.js Cors Error 처리 (feat. API Routes, TypeScript)
    • [PJ Log] React 프로젝트에 Next js 적용
    • [log.] 원티드 프리온보딩 인턴십 : 프론트엔드 숏 에세이
    • [Side Project] 일정 관리 어플 개발 (1) : 시작
    seo0h
    seo0h
    디발자 프엔 취준생

    티스토리툴바