티스토리 뷰
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 까지 모두 해결됨
'SW개발' 카테고리의 다른 글
java.lang.ClassNotFoundException: sun.misc.GC (0) | 2021.03.07 |
---|---|
org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible (0) | 2020.09.16 |
엑셀, 오피스 (0) | 2020.02.18 |
mdb.min.js:1 Uncaught TypeError: Cannot read property 'addEventListener' of null (0) | 2020.02.06 |
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=main(java.lang.String[])], (0) | 2020.01.13 |