github 저장소로 푸시하는 동안이 메시지가 표시됩니다. 문제를 해결하기위한 단계별 절차를 알려 주시겠습니까? 한 번만 밀었 고 성공했습니다. 그러나 프로젝트를 업데이트하고 두 번째 커밋을 푸시하려고하면 "마스터가 빨리 감기를 거부했습니다"라는 메시지가 표시되고 푸시를 허용하지 않습니다. 절차를 설명하십시오.
답변:
나는 똑같은 문제가 있었고 그것을 고칠 수있었습니다. afk5min이 옳았습니다. 문제는 코드를 가져온 지점이 원격 저장소에서 변경되었다는 것입니다. 표준 자식 관행 ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes )에 따라 (이제) 원격 저장소의 변경 사항을 로컬 변경 사항에 병합해야합니다. 커밋 할 수 있습니다. 이것은 다른 사람의 변경 사항을 가져 와서 코드에 병합하여 코드가 다른 변경 사항과 함께 계속 작동하도록합니다.
어쨌든 단계로 넘어갑니다.
원래 가져온 브랜치를 가져 오도록 '가져 오기'를 구성하십시오.
원격 지점을 가져옵니다.
해당 원격 분기를 로컬 분기에 병합하십시오.
로컬 리포지토리에서 (병합) 변경 사항을 커밋합니다.
변경 사항을 원격 저장소로 푸시하십시오.
상세히...
Eclipse에서 'Git Repositories'보기를 엽니 다.
로컬 저장소가 표시되고 원격 저장소를 하위 폴더로 볼 수 있는지 확인합니다. 제 버전에서는 Remote라고 불리며 그 안에서 원격 프로젝트를 볼 수 있습니다.
왼쪽을 가리키는 녹색 화살표를 찾으십시오. 이것은 '가져 오기'화살표입니다. 마우스 오른쪽 버튼을 클릭하고 'Configure Fetch'를 선택합니다.
URI가 표시되고 원격 저장소를 가리키는 지 확인해야합니다.
팝업의 참조 매핑 섹션을보십시오. 내 것은 비어 있었다. 가져 오려는 원격 참조를 나타냅니다. '추가'를 클릭하십시오.
원격 저장소에서 가져 오는 데 필요한 분기 이름을 입력하십시오. Mine은 'master'였습니다 (btw, 여기 드롭 다운이 좋을 것입니다 !!, 지금은 입력해야합니다). 팝업을 계속 진행하고 결국 '마침'을 클릭합니다.
'저장 및 가져 오기'를 클릭합니다. 원격 참조를 가져옵니다.
로컬 저장소의 'Branches'폴더를 확인하십시오. 이제 원격 폴더에서 해당 원격 분기를 볼 수 있습니다. 다시 '마스터'가 보입니다.
'마스터'라는 이름의 'Branches'의 'Local'폴더에서 로컬 분기를 마우스 오른쪽 버튼으로 클릭합니다. 'Merge'를 선택한 다음 'origin / master'라는 이름의 원격 지점을 선택합니다.
병합을 통해 처리합니다.
로컬 저장소에 대한 변경 사항을 커밋합니다.
변경 사항을 원격 저장소로 푸시하십시오.
가서 맛있는 음료를 마시고 자신을 축하하십시오. 나머지는 쉬십시오.
Merge
마스터에서 다음 바로 프로젝트를 다시 클릭은 push branch Master
일
그 동안 (프로젝트를 업데이트하는 동안) '마스터'브랜치에 다른 커밋이 수행되었습니다. 따라서 변경 사항을 푸시하려면 먼저 해당 변경 사항을 가져와야합니다.
Eclipse Luna + Eclipse Git 3.6.1에 적용 가능
나는,
그리고 EGit에서이 문제에 직면했고 여기에 내가 해결 한 방법이 있습니다 ..
예, 변경 사항을 커밋하기 전에 누군가 변경 사항을 커밋했습니다. 따라서 변경 사항이 거부됩니다. 이 오류 후 변경 사항은 실제로 로컬 저장소에 커밋됩니다. 내가 지적한대로 Pull
유지 linear history
하고 싶었 기 때문에 변경 만하고 싶지 않았습니다. 어떤 경우에`git pull`이 해로울 수 있습니까?
그래서 다음 단계를 실행했습니다.
Fetch from Upstream
- 그것은 원격 업데이트 (심판 및 객체)를 가져옵니다하지만 업데이트가 로컬로 수행되지 않습니다. 자세한 내용 은 'git pull'과 'git fetch'의 차이점 은 무엇입니까?를 참조하십시오 .Rebase...
-이것은 팝업을 열고 클릭Preserve merges during rebase
참조 이유를 Rebase button
conflict(s)
6 단계로 이동하고 11 단계로 이동합니다.Rebase Result
팝업이 나타납니다, 단지 클릭 것OK
file comparator
열리면 수정해야합니다. left side file
.Git Staging
보기로 이동하십시오.stage the changes
. 즉add to index
Rebase
->를Continue
. 모든 충돌이 해결 될 때까지 7-10을 반복하십시오.History
보기, 당신의 선택 행을 커밋 선택Push Commit
Rebase Commits of local.......
확인란을 선택하고 다음을 클릭합니다. 이유를 참조하십시오- -Git : 업스트림에서 개발 브랜치로 리베이스Finish
참고 : 로컬 저장소 커밋이 여러 개있는 경우 여러 병합을 방지하려면 하나의 커밋으로 스쿼시해야합니다.
구성 거부 메시지를 받으면 코드를 푸시 한 후 구성을 클릭하고이 그림과 같이 사양 추가를 클릭합니다.
드롭 다운하고 ref / heads / yourbranchname을 클릭하고 Add Spec을 다시 클릭하십시오.