Git은 로컬 브랜치가 원격 브랜치 뒤에 있다고 말하지만 그렇지 않습니다.
대본:
- 나는 새로운 지점을 만든다
- 해킹 해
- 커밋
- 밀어
- 좀 더 해킹
- 다시 커밋
- 다시 밀려 고
힘내 응답 :
현재 지점의 팁이 원격 지점 뒤에 있기 때문에 업데이트가 거부되었습니다. 기타
이 지점을 해킹하는 유일한 사람은 나뿐입니다. 원격 분기는 실제로 로컬 분기 뒤에 있습니다. 나는 전혀 당길 필요가 없습니다.
(그리고 내가 당기면 Git은 둘 사이의 충돌을보고하고 분기를 자체로 병합하도록 강요합니다)
왜 이런 일이 일어날까요? 어떻게 진단 / 수정할 수 있습니까?
명확하게 말하면, 나는 아무데도 분기 하지 않고 다른 사람 도 작업 하지 않습니다 .
Remote: Commit A -------- Commit B
Local: Commit A -------- Commit B -------- Commit C
C는 B의 연속 된 연속이며 분기가 포함되지 않습니다. 그러나 git은 C가 A의 분기라고 생각합니다.
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
그렇지 않습니다. 그것은 B의 연속적인 연속입니다.
역사를 다시 쓰 셨나요? 로컬 지점이 서버의 지점과 분기되었습니다. 이 명령을 실행하여 발생한 상황을 더 잘 이해하십시오.
gitk HEAD @{u}
이 오류의 원인을 이해하려고 노력하는 것이 좋습니다. 이를 수정하려면 다음을 실행하십시오.
git push -f
이는 -f
이를 "강제 푸시"로 만들고 서버의 분기를 덮어 씁니다 . 그것은 당신이 팀으로 일할 때 매우 위험합니다. 그러나 당신은 혼자이고 당신의 지역 주가 정확하다는 것을 확신하기 때문에 이것은 괜찮을 것입니다. 그렇지 않은 경우 커밋 기록을 잃을 위험이 있습니다.
이것은 개발 브랜치를 푸시하려고 할 때 발생했습니다 (git flow를 사용하고 있습니다). 누군가 마스터에게 업데이트를 푸시했습니다. 나는 그것을 고치기 위해 :
git co master
git pull
그 변경 사항을 가져 왔습니다. 그때,
git co develop
git pull
아무 짓도 안 했어요. 오류 메시지에도 불구하고 개발 분기가 이미 푸시되었다고 생각합니다. 모든 것이 현재 최신 상태이며 오류가 없습니다.
솔루션은 매우 간단하고 저에게 효과적이었습니다.
이 시도 :
git pull --rebase <url>
그때
git push -u origin master
진단하려면 이 답변을 따르십시오 .
그러나 당신이 그것을 변경하는 유일한 하나 알고, 그것을 해결하기 위해 수행 :
1 - 백업 프로젝트 (내가 한 자식에 파일 만, ./src 폴더)
2 - git pull
3 - (많은 "엉망"파일을 통해 백업을 복원 병합 표시기 포함)
나는 시도 git pull -s recursive -X ours
했지만 내가 원하는 방식으로 작동하지 않았습니다. 옵션이 될 수 있지만 먼저 백업하십시오 !!!
차이점 / 변경 사항 (git gui에서)이 없는지 확인하십시오. 이것은 제 경우입니다. 병합 할 것이 전혀 없지만 github는 계속 병합해야한다고 말합니다.
'Programing' 카테고리의 다른 글
jQuery를 사용하여 페이지를 한 번 새로 고침 (다시로드) 하시겠습니까? (0) | 2020.10.07 |
---|---|
개발자로서 기본 Windows 설치를 어떻게 변경합니까? (0) | 2020.10.07 |
Linq에서 SQL로-상위 n 개 행 반환 (0) | 2020.10.07 |
HTML 양식이 편집되었는지 감지하는 일반적인 방법 (0) | 2020.10.07 |
Twitter Bootstrap 탭이 작동하지 않음 : 클릭해도 아무 일도 일어나지 않습니다. (0) | 2020.10.07 |