일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 머신러닝기초
- 체인의정석
- rust 기초
- SBT표준
- ethers v6
- Vue
- vue기초
- ambiguous function description
- 러스트 기초 학습
- Vue.js
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트 컨트렉트 함수이름 중복
- multicall
- git rebase
- 오블완
- nest.js설명
- ethers type
- 스마트컨트렉트 함수이름 중복 호출
- 프록시배포구조
- 러스트 기초
- 러스트기초
- 스마트컨트렉트테스트
- 티스토리챌린지
- chainlink 설명
- ethers
- 컨트렉트 동일한 함수이름 호출
- ethers websocket
- 스마트컨트렉트프록시
- ethers typescript
- 컨트렉트 배포 자동화
Archives
- Today
- Total
체인의정석
Git) 브랜치 rebase 하기 본문
728x90
반응형
깃에서 한 브렌치에서 다른 브랜치로 합치는 방법은 2가지가 있다고 한다.
첫번째는 Merge이고, 두번째는 rebase라고 한다.
이렇게 2개의 브랜치가 나누어져 있다고 가정해보자 이 2개를 합리는 가장 쉬운 방법은 merge 명령어를 사용하는 것인데 c2, c3, c4 3개의 커밋이 머지되게 된다.
다음으로 위와 같은 그림이 Rebase라고 할 수 있다. Rebase는 C3에서 변경된 사항을 Patch로 만들고 C4에 적용시키는 것이다. rebase 명령으로 한 브랜치에서 변경된 사항을 다른 브랜치에 적용할 수 있다고 한다. 글을 쓰다가 patch에 대한 개념이 부족하여 다시 정리를 하고 돌아왔다.
https://it-timehacker.tistory.com/142
$ git checkout experiment
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: added staged command
이를 통해 실제로 일어나는 일은 두 브랜치가 나뉘는 커밋부터의 diff를 어딘가에 임시로 저장해 놓는다. Rebase할 브랜치가 합칠 브랜치가 가르키는 커밋을 가리키게 하고 저장해 놓은 변경사항을 차례대로 적용하게 된다.
C4'의 변경사항을 C3에 적용하는 Rebase 과정, 나중에 master 브랜치를 fast-forward 시킨다.
$ git checkout master
$ git merge experiment
이렇게 되면 결국 merge와 똑같이 합치는 관점에서는 다를 바가 없지만 rebase의 경우 좀 더 깨끗한 히스토리를 만들게 된다. Rebase 한 로그를 보면 선형으로 히스토리가 남게 된다.
더 자세한 명령어의 경우 아래 블로그에 나와 있다.
https://velog.io/@finelinefe/GIT-abort-rebase
728x90
반응형
'개발 > git' 카테고리의 다른 글
git) 대용량 파일 올리기 (0) | 2021.10.13 |
---|---|
git) Pull Request 전 코드 업데이트 후 merge 하기 (0) | 2021.09.10 |
Git) Patch 설명 및 명령어 정리 (0) | 2021.09.09 |
git 사용하기 3) 팀원간 같은 소스에서 작업할 시, 깃허브 업데이트 방법 (0) | 2021.08.11 |
git 사용하기 2) 브랜치가 꼬였을때 어떻게 해야 할까? (0) | 2021.08.10 |
Comments