simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • null
  • 스프링
  • 참조타입
  • scanner #next() #nextLine()
  • 참조변수
  • JVM메모리구조
  • 컨트롤러
  • 자바프로그래밍
  • 자바메모리구조
  • 자바
  • 404
  • controllerTest
  • 자바프로그램

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234
Git,Github

[Git/Github] fail to push to ~~ 해결하기

Git,Github

[Git/Github] fail to push to ~~ 해결하기

2022. 9. 29. 19:31

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
  • 1. 오류 설명
  • 2. 해결하기
'Git,Github' 카테고리의 다른 글
  • [Git/Github] 글자수가 너무 길 때 - Filename too long
  • 인텔리j에 깃허브 프로젝트 가져오기
  • Git, Github 정리
  • [Git/Github] 소스트리에서 클론이 안 될 때 - .ppk 인증키 등록
simDev1234
simDev1234
TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.