티스토리 뷰
1. Conflict
: 두개 이상의 브랜치에서 동일한 파일을 동시에 수정하고 병합할 때 발생하는 문제
(소통의 부재,,, 리뷰를 제외한 코드 건들기,,,,)
2. 해결 방안
2.1 Fast-Forward Merge
: Local에 어떠한 작업도 없을 때,
: Remote의 작업물을 그대로 가져옴(remote의 FETCH_HEAD == 로컬 HEAD)
- 명령어
- git fetch + git merge origin/main
- git merge --ff origin/main - Default, 병합 시 Fast-Forward를 강제
- git pull --ff-only origin main - 원격 저장소에서 Fast-Forward만 허용하여 병합
- 설정
: git config pull.ff only - Fast-Forward만을 허용
2.2 3-way Merge
: 원격 FETCH_HEAD 와 HEAD 를 합침
: 새 Merge Commit 생성
: 두 브랜치에 각각 다른 변경 사항이 있을 때 사용 -> 수동 해결
: 병합(merge) 커밋이 쌓여 히스토리가 이상해
- 명령어
- git fetch + git merge --no-ff origin/main
- git pull origin main
- 설정
: git config pull.rebase false (Default)
2.3 Rebase and Merge
: 원격 FETCH_HEAD 를 기준으로 다시 Commit 들을 적재
: 병합 커밋 생성X, 기존의 커밋을 재정렬 -> 하나의 연속된 커밋처럼 만듦
: 일관된 커밋 히스토리를 유지
: 단, 커밋 순서가 바뀌므로 유의(log 상 시간 관계가 이상해짐)
- 명령어
- git fetch + git merge --no-ff origin/main
- git pull --rebase origin main - 원격 브랜치의 변경 사항을 기반으로, 로컬 커밋을 다시 적용
- 설정
: git config pull.rebase true - Rebase를 사용하여 병합할 때마다 자동으로 Rebase 방식을 적용
2.4 Squash and Merge
: 여러 개의 커밋을 하나의 커밋으로 합친 후 병합
: 병합 과정에서 상대방의 커밋을 모두 파괴 -> 상대의 커밋 내역 삭제됨
: 협업 시 사용 X
- 명령어
- git fetch + git merge --squash origin/main
참고
ASAC 수업자료
https://wonyong-jang.github.io/git/2021/02/05/Github-Rebase.html
'정리용 > git' 카테고리의 다른 글
[git] branch 관리 - 3 : 커밋 관리 (0) | 2024.12.26 |
---|---|
[git] branch 관리 - 2 : Statging Area 관리 (1) | 2024.12.26 |
[git] HEAD: 커밋 추적 포인터 (0) | 2024.12.24 |
[git] remote repository 관리 - 1 (0) | 2024.12.24 |
[git] branch 관리 - 1 (0) | 2024.12.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- useState
- asac7
- asac7기
- git
- react
- ssh
- acas#acas7기
- useCallback
- Nginx
- useMemo
- asac7#asac
- ASAC
- useLayoutEffect
- useEffect
- asac#asac7기
- useReducer
- useRef
- memo
- useContext
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함