1. 오류 설명
- 깃으로 원격저장소에 push를 할 때 아래와 같은 오류가 자주 발생한다.
- 오류 메세지 내용은 main 에서 main으로 보낼 때 non-fast-forward 가 발생해서 거절한다는데,
! [rejected] main -> origin/main (non-fast-forward)
error: failed to push some refs to 'github.com:simDev1234/spring.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
- 힌트에 이유와 해결방법이 나와있었고, 해석하면 아래와 같았다.
1. 너가 push 하기 전에 원격 저장소에서 누가 수정작업을 했었네. 2. 음, 아님 뭔가 충돌하는게 있어. 브랜치 체크아웃하고, 새 브랜치 만든 다음에 merge 해봐 3. (1)에서 말한 거의 해결 방법 -- pull 해봐 4. pull해도 안되고, 브랜치 만들어서 merge해도 안 되면, git push --help로 git 사이트에 문의해봐 |
2. 해결하기
(1) 첫번째 해결방법 : pull 하고 push 하기
git pull
(2) 두번째 해결방법 : branch 새로 생성하고 main으로 체크아웃 후, merge 하기
이 방법을 쓸 때 생각할점
* bash를 쓰면 Merge하기 전에 Conflict가 발생할 부분에 대해 가시적으로 눈으로 확인하기 어려울 수 있으니,
* 현장에서 사용하게 될 땐, 소스트리를 쓰는 편이 나을 것 같다.
git branch -M newbranch // 브랜치 생성
git push -v origin newbranch // push
git checkout main // 체크아웃 -> main
git merge newbranch // merge
git status // 상태확인
git log --decorate --graph // 로그확인
>> 위의 코드를 모두 다 썼다면, 깃허브의 원격저장소로 이동해서 Pull Request를 보내고, Conflict가 없으면 Merge한다.
>> Merge 후에는 안 쓰는 브랜치는 예쁘게 정리하자.
git branch -a // 브랜치 확인
git branch -d newbranch // 브랜치 삭제
'Git,Github' 카테고리의 다른 글
[Git/Github] 글자수가 너무 길 때 - Filename too long (0) | 2022.10.05 |
---|---|
인텔리j에 깃허브 프로젝트 가져오기 (0) | 2022.09.30 |
Git, Github 정리 (0) | 2022.09.27 |
[Git/Github] 소스트리에서 클론이 안 될 때 - .ppk 인증키 등록 (0) | 2022.09.23 |
[Git/Github] 소스트리로 클론하기 (0) | 2022.09.23 |