티스토리 뷰

GIT PUSH 중 충돌 (rejected non-fast-forward)

* 상황 1 : commit 충돌로 인한 오류
1. 다른 User 가 (remote)origin/master 에 수정 commit
2. 이 commit 을 pull 하기 전에 내가 같은 브랜치에 수정
3. pull 하지 않은 상태 에서 commit 하면 오류 발생함. (rejected non-fast-forward)

https://devx.tistory.com/entry/git-push-%EC%8B%9C-%EC%98%A4%EB%A5%98%EB%A9%94%EC%84%B8%EC%A7%80-%EB%B0%9C%EC%83%9D%EC%9B%90%EC%9D%B8

* 해결 1 - 그냥 강제로 미는 방법
git push --force

- 이클립스에서는? 따로 메뉴에는 없고 gonsole 이용해서 시도
200214gitTest> git push --force
java.lang.RuntimeException: org.eclipse.jgit.api.errors.TransportException: http://192.168.0.120:7070/user04/gittest.git: Authentication is required but no CredentialsProvider has been registered

안되는데?

* 해결 2 - pull 한 후 push
merge 원활히 되었다면 문제없이 진행됨..


* 상황 2 : 하지만 상대방의 commit이 내 commit 과 충돌한다면? 
내 commit#1 
상대 commit#2 & push (#1 과 conflict 되는... )
내 commit #3 #2과 conflict 되는...)

(이전에는 #2와 #3 이 conflict 되지 않는 상황이었음 )

=> Result Conflicting 메시지 발생함..
pull 하면 
Cannot pull into a repository with state: MERGING 

메시지 보이며 오류 남.

https://soye0n.tistory.com/128
merge 하라고 하지만
우클릭>Team 들어갔으나 Merge 는 disabled 되어있음.
=> 하지만 충돌 표시(빨간색 양방향화살표) 되어있는 파일 개별로는 우클릭>merge Tool 사용 가능함.

Synchronize 화면에서도 Merge tool 메뉴 표시됨.
파일 내용 비교하며 수정 한 후 해당 파일 > 우클릭 > Add to index 하고
merge 에 대한 commit 가능함. 

Commit 메시지는 자동으로 생성

Merge branch 'master' of http://192.168.0.120:7070/user04/gittest.git

Conflicts:
src/Test1.java

Merge branch 'master' of http://192.168.0.120:7070/user04/gittest.git Conflicts: src/Test1.java 


- 이 후 commit & push 하면 기존 충돌했던 commit 까지 모두 해결됨


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함