일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 맥북백틱
- 백틱
- kdt
- 개발자교육과정
- 프론트엔드개발자양성과정
- `
- 배포
- 하나은행
- 디지털교육
- 프론트엔드배포
- udemy
- 미래내일일경험
- 프로젝트캠프
- 맥북백틱입력
- 부트캠프
- github
- 유데미
- Next.js
- 버전생성프로세스
- 디지털하나로입학식
- 깃허브 레포지토리와 로컬 코드 연결하기
- 디지털취업
- 취준생
- DIGITALHANARO
- 스나이퍼팩토리
- s3
- 디지털하나로
- 네이버로그인창만들기
- 웅진씽크빅
- Today
- Total
Land of Joe
pull.ff=only & pull.rebase true로 인한 pull 방해 본문
배경: 원격과 로컬이 각자 서로 다른 커밋을 가지고 있을 때
1차 문제상황: git pull origin (원격브랜치명)을 했을 때에 아래와 같은 오류가 뜬다
hint: Diverging branches can't be fast-forwarded, you need to either:
hint:
hint: git merge --no-ff
hint:
hint: or:
hint:
hint: git rebase
hint:
hint: Disable this message with "git config advice.diverging false"
fatal: Not possible to fast-forward, aborting.
해설 > 서로 갈라진 두 브랜치에서는 fast-forward가 불가능하다
해결방법: fast-forward에 상관없이 merge 해버린다
git merge --no-ff (원격저장소명/브랜치명)
해설 > fast-forward에 상관없이 merge 해버린다
변화 > 로컬 코드 상에 충돌이 발생할 수 있고, merge된 내용이 전부 반영되어 선택할 수 있게 한다.
> 원하는 코드를 선택 후 add, commit, push 하면 해결 완! (그러나..)
위 해결방안의 한계: 매번 git merge --no-ff를 하기 귀찮다.!
그렇다면 위 상황이 벌어지게 된 근본 원인을 찾아보자.
왜 pull을 하려는데 fast-forward(이하 ff)가 되어야하는 걸까?
"Not possible to fast-forward, aborting."로 보아 ff를 해야만 할 수밖에 없는 상황에 있었을까?
pull.ff에 관한 git 기본 설정이 무엇이 있나 알아보기 위해
git config --list | grep (pull.ff)을 해본 결과
pull.ff=only라고 설정해놓은 것이 있음을 발견했고
이를 삭제하기 위해
git config --unset pull.ff 를 진행하였다.
마찬가지로
'pull을 할 때 항상 rebase 된다'는 설정의
git config pull.rebase true 로 인해
git config pull.rebase false
새롭게 알게된 깃 명령어 >>
git reflog
git remote -v: 현재 로컬 저장소와 연결되어 있는 원격 저장소의 주소를 알려준다.
git config --list: 깃 기본 설정 내역 확인
git config --list | grep (키워드): 깃 기본 설정 내역 중 (키워드)를 포함하고 있는 것 출력
https://seosh817.tistory.com/297
'🔗 git (github)' 카테고리의 다른 글
git 충돌 시 (0) | 2023.09.07 |
---|---|
Git branch 관련 아카이브 (0) | 2023.07.27 |
[git] 좋은 commit message 작성법 (0) | 2023.03.31 |