본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 23.5: 선형적인 (linear) history 를 유지하면서 pull 하기
pull 시에 rebase 수행하기
현재 사용자 브랜치에 로컬 커밋들이 있는 상태에서 원격 저장소에서 새로운 커밋들을 pull 하는 경우, git 은 자동으로 원격 버전과 사용자의 로컬 버전을 merge 시킬 것이다. 만약 해당 브랜치의 merge 커밋의 수를 줄이고 싶다면, git 으로 하여금 사용자의 커밋들을 원격 저장소의 대상 브랜치 위로 rebase 작업을 수행하도록 지시할 수 있다.
git pull --rebase
기본 동작으로 설정하기
위에서 설명한 동작을 새롭게 생성되는 브랜치들에 대해서 기본으로 설정하려면, 아래와 같은 명령어를 입력한다:
git config branch.autosetuprebase always
기존 브랜치의 동작을 변경하려면, 아래와 같은 방법을 이용한다:
git config branch.BRANCH_NAME.rebase true
그리고
git pull --no-rebase
를 수행하여 통상적인 merge pull 을 수행할 수 있다.
fast-forward 가능 여부 확인하기
로컬 브랜치로 하여금 fast forward 로만 동작하게 하려면, 아래와 같이 실행한다:
git pull --ff-only
이와 같이 실행 시, pull 하려는 로컬 브랜치가 fast-forward 가능하지 않아 upstream 브랜치와의 rebase 나 merge 가 필요한 경우 에러를 출력할 것이다.
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
24.1: Pre-push hook (0) | 2019.12.16 |
---|---|
23.6: pull 수행중의 "권한없음(permission denied)" 에러 (0) | 2019.12.13 |
23.4: 원격 저장소로부터 코드 pull 해오기 (0) | 2019.12.13 |
23.3: pull 작업이 로컬 변경사항들을 덮어쓰도록 하기 (0) | 2019.12.13 |
23.2: 로컬 변경사항이 있는 경우 pull 하기 (0) | 2019.12.13 |