programing

Egit 거부됨 비고속 전달

powerit 2023. 5. 3. 21:59
반응형

Egit 거부됨 비고속 전달

github repository를 푸시하는 중에 이 메시지가 표시됩니다.당신은 그것을 고치는 절차를 단계별로 알려줄 수 있습니까?한 번만 밀었는데 성공적이었어요.그러나 프로젝트를 업데이트하고 두 번째 커밋을 푸시하려고 하면 "마스터 거부 비고속"으로 표시되고 푸시할 수 없습니다.절차를 설명해 주세요.

저도 같은 문제가 있어서 해결할 수 있었습니다. afk5min이 맞았습니다. 문제는 원격 저장소에서 코드를 가져온 분기가 변경되었다는 것입니다.표준 Git Practice(http://git-scm.com/book/en/Git-Basics-Working-with-Remotes), )에 따라 커밋하기 전에 원격 저장소의 변경 사항을 로컬 변경 사항에 병합해야 합니다.이렇게 하면 다른 사용자의 변경사항을 사용하여 코드에 병합하여 코드가 다른 변경사항과 함께 계속 작동하도록 할 수 있습니다.

어쨌든, 계단으로.

  1. 원래 끌어온 분기를 가져오도록 'fetch'를 구성합니다.

  2. 원격 분기를 가져옵니다.

  3. 해당 원격 분기를 로컬 분기에 병합합니다.

  4. 로컬 레포에서 변경 사항을 커밋합니다.

  5. 변경 사항을 원격 저장소로 푸시합니다.

자세히...

  1. 이클립스에서 'Git Reposities' 보기를 엽니다.

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

  3. 왼쪽을 가리키는 녹색 화살표를 찾으십시오. 이것이 '고정' 화살표입니다.마우스 오른쪽 버튼을 클릭하고 'Fetch 구성'을 선택합니다.

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

  5. 팝업의 참조 매핑 섹션을 확인합니다.내 것은 비어 있었습니다.가져올 원격 참조를 나타냅니다.'추가'를 클릭합니다.

  6. 원격 저장소에서 가져올 분기 이름을 입력합니다.제 것은 '마스터'였습니다(그런데, 여기 드롭다운이 좋을 것 같아요!!, 지금은 입력해야 합니다).팝업을 계속 진행하고 마지막으로 '마침'을 클릭합니다.

  7. '저장 후 가져오기'를 클릭합니다.원격 참조를 가져옵니다.

  8. 로컬 리포지토리의 '지점' 폴더를 확인합니다.이제 원격 폴더에 해당 원격 분기가 표시됩니다.다시 '주인님'이 보입니다.

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

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

  11. 로컬 리포지토리에 대한 변경 사항을 커밋합니다.

  12. 변경 사항을 원격 리포지토리에 푸시합니다.

  13. 가서 맛있는 음료를 드세요, 축하해요.남은 하루 쉬세요.

나의 경우, 나는 선택했습니다.Force Update를 누르는 동안 확인란을 선택합니다.그것은 매력적으로 작동했습니다.

그동안(프로젝트를 업데이트하는 동안) '마스터' 분기에 다른 커밋이 수행되었습니다.따라서 변경사항을 푸시하려면 먼저 변경사항을 끌어와야 합니다.

Eclipse Luna + Eclipse Git 3.6.1에 적용 가능

i,

  1. 복제된 git 저장소
  2. 소스 코드에 약간의 변경을 가했습니다.
  3. Git 스테이징 보기에서 스테이징된 변경 사항
  4. 마지막으로 커밋하고 푸시!

그리고 저는 이 문제를 EGit에 직면했고, 여기 제가 어떻게 그것을 고쳤는지가 있습니다.

예, 변경 내용을 커밋하기 전에 다른 사용자가 변경 내용을 커밋했습니다.따라서 변경사항은 거부됩니다.이 오류가 발생하면 변경 내용이 실제로 로컬 리포지토리에 커밋됩니다.나는 그냥 하고 싶지 않았습니다.Pull내가 유지하고 싶었기 때문에 변화들.linear history에서 지적한 바와 같이 - 어떤 경우에 '깃풀'이 해로울 수 있습니까?

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

  1. Repository Repository를 마우스 버튼으로 클릭합니다.
  2. 선택합니다.Fetch from Upstream원격 업데이트(참조 및 개체)를 가져오지만 로컬에서는 업데이트가 수행되지 않습니다.자세한 내용은 'git pull'과 'git fetch'의 차이점은 무엇입니까?
  3. 선택합니다.Rebase..., 팝열기, 릭클을 합니다.Preserve merges during rebase이유를 보다
    가 정확히 하는 입니까? (그 이유는 무엇입니까?) git의 "rebase --reserve-merges"라는 단어는 입니까?
  4. 을 클릭합니다.Rebase button
  5. 지이있다가 있는conflict(s)6단계로 이동합니다. 다른 11단계로 이동합니다.
  6. a Rebase Result "▁on다니▁click▁would▁popup합클릭▁just"를 클릭합니다.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/your branch name을 클릭하고 Add Spec을 다시 클릭합니다.

여기에 이미지 설명 입력 강제 업데이트를 선택해야 합니다.

여기에 이미지 설명 입력 마지막으로 코드를 저장하고 repo에 푸시합니다.

Git 보기 열기:

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

Git가 원격 분기를 로컬 리포지토리와 병합합니다.

4-그 후 푸시

이 오류는 원격 리포지토리에 다른 커밋이 있고 로컬 분기보다 앞섰음을 의미합니다.
저는 한 번 당기고 그 다음에 한 번 밀려고 합니다.충돌하는 변경사항이 없으면 git pull은 변경사항을 그대로 유지하면서 최신 코드를 로컬 지점으로 가져옵니다.
그런 다음 깃 푸시를 누르면 변경 내용이 마스터 분기로 푸시됩니다.

나의 경우, 나는 git에서 새로운 변화를 끌어내는 것을 잊었습니다.

  1. 업스트림에서 가져오기 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
  2. 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
  3. 프로젝트에서 마우스 오른쪽 버튼을 클릭합니다. Push to Upstream(업스트림으로 푸시)

나는 당신이 가장 최근에 약속을 해야 한다는 것을 발견했습니다.따라서 다음 단계를 수행해야 합니다. 1) 동일한 파일에서 작업을 수행하지 않았는지 확인하십시오. 그렇지 않으면 DITY_를 만나게 됩니다.WORK_TREE 오류. 2) 최신 변경 내용을 가져옵니다.업데이트를 커밋합니다.

이게 도움이 되길 바랍니다.

  1. 깃허브에 가서 당신의 새로운 코드에 대한 레포를 만드세요.
  2. 업스트림으로 푸시를 수행할 때 Eclise에서 새 https 또는 sshurl을 사용합니다.

언급URL : https://stackoverflow.com/questions/19474186/egit-rejected-non-fast-forward

반응형