일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 알고리즘
- 서비스 기획
- the room
- 개발자 추천 책
- 경제 기초 용어
- Spring
- 김영하 작가
- 여행의 이유 김영하
- react.js
- backend 초보
- 아이디어
- 마보
- DB설계
- Web Component
- 여행의 이유 독후감
- java
- 책 리뷰
- 마인드풀니스
- 새로운 여행방식
- 마음챙김
- 백엔드 입문
- 금융
- 자바스크립트
- 경제 기초 책
- 명상
- 최고의휴식
- 경제 기초 상식
- 기사
- git
- 백엔드 개발자
Archives
- Today
- Total
Imagine
[TIL] Git Rebase 와 Merge 차이 본문
Git 작업의 흐름
로컬 저장소는 git이 관리하는 세 그루의 나무로 구성돼 있음
1. 작업 디렉토리(Working directory) : 실제 파일들로 이루어져 있음.
2. 인덱스 (Index) : 준비 영역(staging area)의 역할.
3. HEAD: 최종 확정본(commit)을 나타냄.
Git Reabase와 Merge 차이
하나의 브랜치를 다른 브랜치로 합치는 방법은 두 가지 방법있다.
Merge
각 브랜치의 마지막 커밋 두개와 공통 조상의 총 3개의 커밋을 이용하는 3-way-merge를 수행하여
새로운 커밋을 만들어 내는 것.
Rebase
브랜치의 공통 조상이 되는 base를 다른 브랜치의 커밋 지점으로 바꾸는 것.
rebase 하려는 브랜치 커밋들의 변경사항을 patch라는 것으로 만든 다음에 어딘가 저장해둠.
그리고 master 브랜치에 하나씩 적용하여 새로운 커밋을 만드는 것
merge를 사용하면 브랜치가 생기고 병합되는 모든 작업내용을 그대로 기록한다.
즉 커밋 내역에 Merge commit이 추가로 남게된다.
rebase는 Merge commit을 남기지 않으므로, 마치 다른 브랜치는 없었던 것처럼 프로젝트의 작업 내용이 하나의 흐름으로 유지됨.
참고
'Today I Learn' 카테고리의 다른 글
[TIL] Java - Integer와 int의 차이 (0) | 2020.08.26 |
---|---|
[TIL] 아는 만큼 보이는 데이터베이스 설계와 구축 (0) | 2020.08.09 |
[TIL] (0) | 2020.08.05 |