[eclipse] Egit이 비 빨리 감기를 거부했습니다.

github 저장소로 푸시하는 동안이 메시지가 표시됩니다. 문제를 해결하기위한 단계별 절차를 알려 주시겠습니까? 한 번만 밀었 고 성공했습니다. 그러나 프로젝트를 업데이트하고 두 번째 커밋을 푸시하려고하면 “마스터가 빨리 감기를 거부했습니다”라는 메시지가 표시되고 푸시를 허용하지 않습니다. 절차를 설명하십시오.



답변

나는 똑같은 문제가 있었고 그것을 고칠 수있었습니다. afk5min이 옳았습니다. 문제는 코드를 가져온 지점이 원격 저장소에서 변경되었다는 것입니다. 표준 자식 관행 ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes )에 따라 (이제) 원격 저장소의 변경 사항을 로컬 변경 사항에 병합해야합니다. 커밋 할 수 있습니다. 이것은 다른 사람의 변경 사항을 가져 와서 코드에 병합하여 코드가 다른 변경 사항과 함께 계속 작동하도록합니다.

어쨌든 단계로 넘어갑니다.

  1. 원래 가져온 브랜치를 가져 오도록 ‘가져 오기’를 구성하십시오.

  2. 원격 지점을 가져옵니다.

  3. 해당 원격 분기를 로컬 분기에 병합하십시오.

  4. 로컬 리포지토리에서 (병합) 변경 사항을 커밋합니다.

  5. 변경 사항을 원격 저장소로 푸시하십시오.

상세히…

  1. Eclipse에서 ‘Git Repositories’보기를 엽니 다.

  2. 로컬 저장소가 표시되고 원격 저장소를 하위 폴더로 볼 수 있는지 확인합니다. 제 버전에서는 Remote라고 불리며 그 안에서 원격 프로젝트를 볼 수 있습니다.

  3. 왼쪽을 가리키는 녹색 화살표를 찾으십시오. 이것은 ‘가져 오기’화살표입니다. 마우스 오른쪽 버튼을 클릭하고 ‘Configure Fetch’를 선택합니다.

  4. URI가 표시되고 원격 저장소를 가리키는 지 확인해야합니다.

  5. 팝업의 참조 매핑 섹션을보십시오. 내 것은 비어 있었다. 가져 오려는 원격 참조를 나타냅니다. ‘추가’를 클릭하십시오.

  6. 원격 저장소에서 가져 오는 데 필요한 분기 이름을 입력하십시오. Mine은 ‘master’였습니다 (btw, 여기 드롭 다운이 좋을 것입니다 !!, 지금은 입력해야합니다). 팝업을 계속 진행하고 결국 ‘마침’을 클릭합니다.

  7. ‘저장 및 가져 오기’를 클릭합니다. 원격 참조를 가져옵니다.

  8. 로컬 저장소의 ‘Branches’폴더를 확인하십시오. 이제 원격 폴더에서 해당 원격 분기를 볼 수 있습니다. 다시 ‘마스터’가 보입니다.

  9. ‘마스터’라는 이름의 ‘Branches’의 ‘Local’폴더에서 로컬 분기를 마우스 오른쪽 버튼으로 클릭합니다. ‘Merge’를 선택한 다음 ‘origin / master’라는 이름의 원격 지점을 선택합니다.

  10. 병합을 통해 처리합니다.

  11. 로컬 저장소에 대한 변경 사항을 커밋합니다.

  12. 변경 사항을 원격 저장소로 푸시하십시오.

  13. 가서 맛있는 음료를 마시고 자신을 축하하십시오. 나머지는 쉬십시오.


답변

제 경우에는 Force Update밀면서 확인란을 선택했습니다 . 그것은 매력처럼 작동했습니다.


답변

그 동안 (프로젝트를 업데이트하는 동안) ‘마스터’브랜치에 다른 커밋이 수행되었습니다. 따라서 변경 사항을 푸시하려면 먼저 해당 변경 사항을 가져와야합니다.


답변

Eclipse Luna + Eclipse Git 3.6.1에 적용 가능

나는,

  1. 복제 된 git 저장소
  2. 소스 코드를 일부 변경했습니다.
  3. Git 스테이징 뷰에서 단계적 변경
  4. 마지막으로 커밋하고 푸시하세요!

그리고 EGit에서이 문제에 직면했고 여기에 내가 해결 한 방법이 있습니다 ..

예, 변경 사항을 커밋하기 전에 누군가 변경 사항을 커밋했습니다. 따라서 변경 사항이 거부됩니다. 이 오류 후 변경 사항은 실제로 로컬 저장소에 커밋됩니다. 내가 지적한대로 Pull유지 linear history하고 싶었 기 때문에 변경 만하고 싶지 않았습니다. 어떤 경우에`git pull`이 해로울 수 있습니까?

그래서 다음 단계를 실행했습니다.

  1. Git Repository 관점에서 해당 Git
    프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 고르다 Fetch from Upstream – 그것은 원격 업데이트 (심판 및 객체)를 가져옵니다하지만 업데이트가 로컬로 수행되지 않습니다. 자세한 내용 은 ‘git pull’과 ‘git fetch’의 차이점무엇입니까?를 참조하십시오 .
  3. 선택 Rebase...-이것은 팝업을 열고 클릭Preserve merges during rebase 참조 이유를
    정확히 자식의 무엇 “REBASE –preserve-병합”할 (? 그리고 왜)
  4. 클릭 Rebase button
  5. / 있다면 conflict(s) 6 단계로 이동하고 11 단계로 이동합니다.
  6. Rebase Result팝업이 나타납니다, 단지 클릭 것OK
  7. file comparator 열리면 수정해야합니다. left side file .
  8. 변경 사항 병합이 올바르게 완료되면 Git Staging 보기로 이동하십시오.
  9. stage the changes. 즉add to index
  10. 동일한보기에서 Rebase ->를Continue . 모든 충돌이 해결 될 때까지 7-10을 반복하십시오.
  11. …에서 History 보기, 당신의 선택 행을 커밋 선택Push Commit
  12. 선택 Rebase Commits of local.......확인란을 선택하고 다음을 클릭합니다. 이유를 참조하십시오- -Git : 업스트림에서 개발 브랜치로 리베이스
  13. 클릭 Finish

참고 : 로컬 저장소 커밋이 여러 개있는 경우 여러 병합을 방지하려면 하나의 커밋으로 스쿼시해야합니다.


답변

구성
거부 메시지를 받으면 코드를 푸시 한 후 구성을 클릭하고이 그림과 같이 사양 추가를 클릭합니다.

소스 참조 및 대상 참조
드롭 다운하고 ref / heads / yourbranchname을 클릭하고 Add Spec을 다시 클릭하십시오.

여기에 이미지 설명 입력
강제 업데이트를 선택했는지 확인하십시오.

여기에 이미지 설명 입력
마지막으로 코드를 저장하고 저장소에 푸시


답변

자식보기 열기 :

1- 프로젝트를 선택하고 병합을 선택하십시오. 2- 원격 추적을 선택하십시오. 3- 확인을 클릭하십시오.

Git은 원격 지점을 로컬 저장소와 병합합니다.

4- 그런 다음


답변

이 오류는 원격 저장소에 다른 커밋이 있고 로컬 브랜치보다 앞 섰음을 의미합니다.
나는 git pull에 이어 git push를 시도합니다. 충돌하는 변경 사항이없는 경우 git pull은 변경 사항을 그대로 유지하면서 내 로컬 브랜치에 최신 코드를 가져옵니다.
그런 다음 git push가 변경 사항을 마스터 브랜치에 푸시합니다.