it-source

거부된 마스터 -> 마스터(비고속 포워드)

criticalcode 2023. 5. 26. 21:09
반응형

거부된 마스터 -> 마스터(비고속 포워드)

프로젝트(새 리포지토리의 모든 파일)를 푸시하려고 합니다.나는 단계를 따르지만, 내가 밀고 나갈 때.git push -u origin master다음 오류가 발생했습니다.

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

이 오류가 여러 번 발생하여 어떻게 해야 할지 모르겠습니다.

주의: 이 방법은 git 사용을 권장하지 않습니다.이렇게 하면 원격의 변경 내용이 덮어씁니다.로컬 변경사항이 원격 마스터에 푸시되어야 한다는 것을 100% 알고 있는 경우에만 이 작업을 수행합니다.

⚠️ 사용해 보십시오.git push -f origin master

메시지가 표시되는 처럼:git pull 전에git push로컬 분기가 추적 분기와 동기화되지 않은 것 같습니다.

프로트규에따사수있다습니를 사용할 .git pull --rebase.

저는 방금 이 오류를 받았습니다.

로컬 git 저장소를 만든 후 github 저장소를 생성했기 때문에 github에 푸시하기 전에 local로 변경 사항을 수락해야 했습니다.이 경우 변경 사항은 github 저장소를 만들 때 선택적 단계로 작성된 readme 파일뿐입니다.

git pull https://github.com/*username*/*repository*.git master

저장소 URL은 다음 프로젝트 github 페이지에서 가져옵니다.

여기에 이미지 설명 입력

그런 다음 다시 초기화했습니다(필요하지 않을 수 있음).

git init
git add .
git commit -m "update"

그런 다음 다음을 누릅니다.

git push

다음 명령을 사용합니다.

git pull --allow-unrelated-histories <nick name of repository> <branch name>

예:

git pull --allow-unrelated-histories origin master

이 오류는 프로젝트에 공통 조상이 없을 때 발생합니다.

한다면git pull되지 . 사항(에는 도이되않습다니지를 했을 수 있습니다. 그러면 아마도 변경 사항(A)을 푸시한 후 사용했을 것입니다.git commit --amend몇 가지 변경사항을 추가합니다( B).따라서 Git은 당신이 기록을 잃을 수 있다고 생각합니다 - 그것은 A로부터의 모든 변화를 포함하고 있음에도 불구하고 B를 다른 커밋으로 해석합니다.

             B
            /
        ---X---A

아무도 보고서를 변경하지 않는 경우A그러면 할 수 있습니다.git push --force.

단, 이후에 변경사항이 있는 경우A다른 사용자로부터:

             B
            /
        ---X---A---C

그러면 당신은 사람들이 변한다는 것을 다시 근거로 삼아야 합니다.AB(C->D).

             B---D
            /
        ---X---A---C

또는 수동으로 문제를 해결합니다.저는 아직 어떻게 해야 할지 생각하지 못했습니다.

저는 새로운 리포잉 허브를 만들었고 저는 같은 문제를 가지고 있었지만, 그것은 또한 당김 과정에서 문제가 있어서 이것은 저에게 효과가 있었습니다.

하지만 이미 많은 코드를 가지고 있는 저장소에서는 이것이 모든 것을 망칠 수 있기 때문에 권장되지 않습니다.

git push origin master --force

경고:

여행을 떠나는 것git pull항상 해결책은 아니므로 주의하십시오.저장소 기록을 의도적으로 변경한 경우 이 문제(Q에 언급된 문제)가 발생할 수 있습니다.이 경우 git는 기록 변경과 원격 저장소의 새 변경을 혼동합니다.그래서, 당신은 잠시 동안 가야 합니다.git push --force전화를 하기 때문에git pull기록에 대한 모든 변경 사항을 의도적으로 취소합니다.

내 리모컨이 로컬과 동기화되지 않아 작동했습니다.

git pull --rebase

그리고 당신이 할 때 확실히 하라.git pull " 상태이며 "라고 .

당신이 이미 했다고 가정하면git remote add origin remote repository URL

하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다

git push origin master

스크린샷이 모든 것을 말해줍니다.

또는 이 작업을 수행할 수 있습니다.

  1. gitstash(커밋되지 않은 작업을 임시로 저장)
  2. git pull(로컬 및 원격 동기화)
  3. git stash pop (커밋되지 않은 변경 사항 다시 가져오기)
  4. 기트 푸쉬

이는 사용자가 마스터에서 일부 변경을 수행했으므로 프로젝트에서 먼저 끌어오라고 요청했기 때문입니다.이 버튼을 누르려면 다음과 같이 입력하여 강력한 힘을 사용할 수 있습니다.

git push -f origin master

먼저 변경 사항을 커밋해야 합니다.

git add .
git commit -m "Your commit message"

다음 명령을 사용하십시오. "git pull origin master"

그것은 나에게 효과가 있었다.

다음 링크를 확인하십시오. https://help.github.com/articles/dealing-with-non-fast-forward-errors

당신은 해야 합니다.

git branch

출력이 다음과 같은 경우:

* (no branch)
master

그럼 하시오

git checkout master

체크아웃하면 커밋되지 않은 모든 변경사항이 손실되므로 보류 중인 커밋이 없는지 확인합니다.

[fast] master -> master (비고속 포워드)

당황하지 마십시오. 이것은 매우 쉽게 고칠 수 있습니다.풀만 발행하면 지점이 빠르게 전달됩니다.

git 내 레포 마스터를 당겨요.

그런 다음 푸시를 다시 시도하면 모든 것이 정상일 것입니다.

git push git 허브 마스터

이것은 제가 develop 브랜치에 있을 때 발생한 일이고 제 마스터 브랜치는 최신 업데이트가 없습니다.

그래서 제가 develop branch에서 push를 얻으려고 했을 때 그 오류가 있었습니다.

마스터 브랜치, git pull로 전환하여 수정한 다음 branch 개발 및 git push로 돌아갑니다.

$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git push

저는 개발 기계에서 이 문제를 겪었습니다.dev은 잘 ▁the▁branch▁the만▁was있▁pushing▁fine지▁but.master브랜치는 나에게 주었습니다 (그 동안)git push통화 중일 때 호출음dev분기):

! [rejected]        master -> master (non-fast-forward)

그래서 노력했습니다.

git checkout master
git pull

그래서 나는:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.

에서 마스터 브랜치가 누락된 것을 알게 되었습니다..git/config추가된 항목이 추가되었습니다.

[branch "master"]
    remote = origin
    merge = refs/heads/master

에 ㅠㅠgit push또한 잘 작동했습니다.dev분점.

저도 같은 오류가 발생했지만 다음과 같은 URL을 가져옴으로써 쉽게 해결했습니다.

git fetch origin Your repository origin

그런 다음 명령을 적용합니다.

git push -f origin master

당신은 좋은 결과를 얻을 것입니다.

저도 같은 문제가 있었습니다.나는 깃 토오이즈를 사용합니다.Just 오른쪽 클릭 ->TotoiseGit ->CleanUp 이제 Github으로 밀어주시면 됩니다 :D

마스터에 충돌하는 변경사항이 있기 때문입니다.그리고 당신의 저장소 서버는 이 단어들로 당신에게 그것을 말할 수 없습니다. 그래서 당신을 위해 이러한 갈등들을 다루는 것은 그의 문제가 아니기 때문에, 그는 당신에게 그것을 스스로 하도록 요청합니다.

1-git pull리포지토리의 코드를 사이트 마스터의 코드로 병합합니다.그래서 갈등이 드러납니다.

2- 이러한 수동 충돌을 처리합니다.

3-

git push origin master

그리고 그 전에, 당신의 문제는 해결되었습니다.

이것은 또한 Repo에 이름을 지정하는 동안 발생한 일부 이름 오류로 인해 발생할 수 있습니다.위의 답변 중 하나라도 효과가 없는 경우.이것은 저에게 효과가 있었습니다.

해당 보고서를 삭제하고 새 보고서를 생성한 후 다음 명령을 다시 시도하십시오.

cd 'Local Directory Path'
git remote add origin *your_git_name.git*
git push -u origin master

add origin 표시가 이미 존재하는 경우 대신 다음을 사용합니다.

git remote set-url origin *your_git_name.git*

내가 이 문제를 해결할 수 있었던 유일한 방법은 로컬 및 깃레포를 삭제하고 양쪽 끝에 동일한 것을 다시 만드는 것이었습니다.지금은 잘 작동합니다.

헤로쿠로 푸시를 시도하는 동안 이 오류가 발생한 사람이 있다면 다음과 같이 '오리진'을 '헤로쿠'로 교체하십시오. git push -fherku master

이것을 사용해 보세요, 저의 경우에는 효과가 있습니다.

git rebase --abort

즉, 원격 Git 저장소가 다음으로 구성되어 있습니다.denyNonFastforwards = true위험하지만 때때로 Git 기록을 덮어쓸 필요가 있을 수 있습니다(예: 실행 후).bfg --strip-blobs-bigger-than 100M) 따라서 해당 설정을 임시로 수정할 수 있습니다.false(denyNonFastforwards = true을 보다your-repository.git/config를 강제로 누릅니다(즉, 를 누릅니다).git push -f).

때때로 Git는 커밋을 손실하지 않고 원격 리포지토리를 변경할 수 없습니다.간단히 말해, 커밋이 손실되었거나 다른 사용자가 사용자와 동일한 분기로 이동하려고 할 때 이 문제가 발생할 수 있습니다.이 문제를 해결하려면 먼저 풀 요청을 합니다.

$ git pull origin YOUR_BRANCH_NAME

또는

$ git pull --rebase origin master

저는 다음 단계를 통해 이 문제를 해결했습니다.

git add *
git fetch
git pull origin main --allow-unrelated-histories or git pull --rebase <your_reponame> <your_branch>
git push -u "<pass your project clone url>" main or git pull origin [branch]

언급URL : https://stackoverflow.com/questions/11696295/rejected-master-master-non-fast-forward

반응형