rebase : 브랜치 기록을 다른 브랜치 위로 옮기는 작업(로그 정리)
=> rebase를 사용하면 이력이 깔끔해지고 팀 내 협업에서 보다 이해하기 쉬운 커밋 이력을 유지할 수 있음.

1. 브랜치 재정렬 : 기존 브랜치의 변경 내역을 다른 브랜치의 최신 기록 위로 옮겨 정리
2. 병합 커밋 줄이기 : 두 브랜치를 병합할 때 생성되는 병합 커밋을 줄이거나 없애고 깔끔한 이력 유지 가능

 

Rebase 그림으로 설명

1. 환경설정, 로그인 퇴근, 로그인 아픔, 로그인 완료 파일들을 commit하여 로그를 남긴다.

2. 로그인 퇴근과 로그인 아픔의 로그는 없애고 싶다.

3. git reset -i HEAD~3를 통해 설정한다.

==> 방향은 최근에 commit한 방향부터 squash

 

rebase 실습

1. 설정한 log 확인

2. git  rebase -i HEAD~3

: 창이 나오고 rebase 설정할 수 있는 옵션들이 나옴.


**** d fd8032d 로그인아파서퇴근을 드롭하면

: 로그인아파서퇴근을 커밋한 한 것이 삭제된다.

 

**** git reflog : git 브랜치나 HEAD와 같은 참조들이 가리키는 커밋 이력을 추적하는 도구로 실숫로 커밋을 잃어버리거나 되돌리고 싶을 때 사용한다.

 

**** git reset --hard 1a6a : 명령어 사용해서 reset

: 로그인아파서퇴근 drop하기 전으로 이동


=> 로그인 완료, 로그인아파서퇴근을 squash해주고, 로그인퇴근을 pick해주면

로그 기록에 환경설정완료와 로그인완료만 남는다.

 

 

squash : 여러 개의 연속된 커밋을 하나의 커밋으로 합치는 작업 
=> 이 작업을 통해 커밋 이력을 깔끔하게 유지하거나, 불필요한 세부 변경 사항을 하나의 의미 있는 커밋으로 정리 가능

1. git rebase -i  HEAD~갯수 : 여러 커밋을 병합하고 싶은 브랜치 이력을 열고, squash 명령어를 사용하여 커밋을 합침
2. git merge --squash : 브랜치를 병합하면, 커밋을 합친 상태로 스테이징 영역에 올라가게 됨. 이후 새로운 커밋을 생성하여 이를 커밋 이력에 반영

 

 

 

 

 

 

 

 

 

[유튜브] 지옥에서 온 관리자 Git 를 참고하며 작성했습니다.

'Study > Git' 카테고리의 다른 글

Github 사용법 (1) 혼자할 때  (1) 2024.01.10
Git Branch 개념 및 3-way 와 fast-forward  (0) 2024.01.09
Git 실행 원리와 기본 실습  (0) 2024.01.04

+ Recent posts