source

git pull 오류: 오류: 원격 참조가 있지만 예상됨

nicesource 2023. 5. 29. 11:00
반응형

git pull 오류: 오류: 원격 참조가 있지만 예상됨

전체 메시지:

error: Ref refs/remotes/origin/user is at 3636498c2ea7735fdcedc9af5ab3c8689e6abe77 but expected a21359c6cc2097c85775cde6a40105f4bd7100ec
From github.com:{github project url}
 ! a21359c..6273ffc  user -> origin/user  (unable to update local ref)

X를 실행하는 , 두 가 있는 경우( Windows OS X) Git 및 OS X:user_model_changes그리고.User_model_changes두 원격 지점 모두 동일한 추적 참조와 일치하기 때문입니다.

분기를 대소문자만 됨), 다음에 "" "" " " " " " " " " " (" " " " " " " " " " " " " " ( " " " )를 선택합니다.git remote prune origin해야 합니다.

영구 수정

git update-ref -d예를 들어, 이 오류에 대한 내 인스턴스를 해결했습니다.

git update-ref -d refs/remotes/origin/user

원격에는 영향을 주지 않습니다.

에 오는 제에는사, 음람이다.git fetch해당 분기를 다시 가져오며 gitfetchs/message를 실행한 후 더 이상 "remote refis at but expected" 오류가 발생하지 않습니다.

그래도 해결되지 않으면 임시 해결책:

오리진에에는 " " " " " (" " " " " " " " " " " " " " " " " " " ( " " " " " " "/ " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "git pull해결 방법은 가져온 다음 관심 있는 특정 분기를 병합하는 것입니다. 예를 들어,

git fetch # may give an error for a particular branch, but other branches will still be successfully fetched
git merge origin/master

다음 폴더 및 파일을 삭제합니다.\.git\refs\remotes\origin푸시되지 않은 변경사항이 없을 때 작동합니다.

아래의 두 명령을 하나씩 사용합니다.

git gc --prune=now

git remote prune origin

이렇게 하면 문제가 해결됩니다.

문제를 해결하기 위해 실행했습니다.

git gc --prune=now

다음 위치의 명령줄에서 분기를 제거해야 했습니다.

.git\refs\remotes\{my remote}\{**my branch**}

수동으로 다음 작업을 수행합니다.

git pull [remote_name] [branch_name]

저는 변화를 끌어낼 수 있었습니다.

참고: SourceTree를 사용 중이어서 풀을 수행할 수 없습니다.

안타깝게도 GIT 명령어인 가지치기, 재설정 또는 푸시는 저에게 효과가 없었습니다.Prune은 한 번 작동한 후 문제가 다시 발생했습니다.

영구적인 해결책은 git 파일을 수동으로 편집하는 것입니다.프로젝트의 .git 폴더로 이동한 다음 메모장++과 같은 텍스트 편집기에서 packed-refs 파일을 열기만 하면 됩니다.그런 다음 실패한 분기가 있는 행으로 이동하여 해당 분기의 Guid를 예상되는 분기로 업데이트합니다.

다음과 같은 메시지가 있는 경우:

오류: 참조 'refs/refs/refs/feature/feature/refs_xx'를 잠글 수 없음: 425ea23ffs96f51fs412441f41ad488fc098cf23에 있지만 383de86fed394ff1a1aefc4a522d886 adecd79가 필요합니다.

그런 다음 파일에서 다음 행을 찾습니다.refs/remotes/origin/feature/branch_xxx의 안내원은 이 될 입니다 - 그의안예번는상되 (2번째) 것곳것다니될입이.383de86fed394ff1a1aeefc4a522d886adcecd79 - 진짜로(1번째) 째셔야합니다바꿔주번--425ea23facf96f51f412441f41ad488fc098cf23.

실패한 다른 지점에 대해 반복하면 계속 진행할 수 있습니다.때때로 다시 가져온 후에 이전에 이미 '고친' 동일한 분기에 대해 반복해야 했습니다.GIT 업데이트를 다시 가져올 때 가이드와 최신 버전을 제공합니다.

어쨌든 그 문제는 쇼 스토퍼가 아닙니다.분기 목록이 업데이트됩니다.이것은 오히려 경고입니다.

하드 리셋도 문제를 해결합니다.

git reset --hard origin/master

단계 지우기

  1. 말기에

    cd /.git/refs/remotes/origin
    
  2. 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다ls 개의 가지와 HEAD가 보일 것입니다.

  3. 문제가 있는 것으로 생각되는 분기 제거

    rm branchname
    
  4. 작동하지 않으면 모든 분기/HEAD를 삭제합니다.

    • 당기고 싶으셔도 됩니다.

이제 효과가 있기를 바랍니다.

여러 가지 옵션을 시도해 보았지만 효과가 없었습니다.아래의 명령이 저에게 효과가 있었습니다.다른 방법이 통하지 않을 경우 사람들에게 도움이 될 수 있다면 여기에 두겠습니다.

git pull -p

-p --prune 가져오기 전에 원격에 더 이상 존재하지 않는 원격 추적 참조를 제거합니다.기본 태그 자동 추적 또는 --tags 옵션 때문에 태그를 가져오는 경우에는 태그를 가지치기할 수 없습니다.그러나 명시적 refspec(명령줄 또는 원격 구성에서 --mirror 옵션을 사용하여 원격을 복제한 경우 등)으로 인해 태그를 가져오는 경우 태그도 가지치기 대상이 됩니다.--prune-tags를 제공하는 것은 태그 refspec을 제공하는 간단한 방법입니다.

--출처: https://git-scm.com/docs/git-pull#Documentation/git-pull.txt--p

이것 좀 먹어봐요, 저한테 효과가 있었어요. 터널에서:git remote prune origin.

이미 원격 지사에 푸시를 했는데 이전 커밋으로 재설정했기 때문에 동일한 문제가 발생했습니다.

지점을 으로 해결했습니다.git checkout origin/my_branch에 '으으으으으으으으으으으으으으으으으으으으으으으으으으으으으으git checkout my_branch

저는 이 문제에 직면했으며 제 해결책은 다음과 같습니다.

1단계:

  1. 이 명령을 먼저 실행하십시오.

    gitgc --Prune=지금

2단계:

  1. 1단계 명령을 실행한 후 오류가 없으면 터미널에서 이 아래 명령을 실행합니다.

    git 원격 가지치기 오리진

이것이 당신의 문제를 해결하기를 바랍니다.

다음 명령을 다음 순서로 실행합니다.

git gc --prune=now
git remote prune origin
git pull

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stingit reflog 만료 --filename=now --all gitgc --prune=now

같은 경우지만 게시된 주석에 대한 내용은 없습니다. 제 경우에는 브랜치(마스터)가 하나뿐이고 유닉스 파일 시스템만 사용합니다. 이 오류는 gitfetch --progress --prune origin 및 브랜치가 앞에 있거나 'origin/master'를 실행할 때 무작위로 발생합니다.아무도 커밋할 수 없고, 한 명의 사용자만 푸시할 수 있습니다.

참고: cme 저장소에 서브모듈이 있고, acme에 새로운 서브모듈 변경(새 커밋)이 있습니다. 먼저 git 서브모듈 업데이트로 서브모듈 업데이트를 해야 합니다.

[2014-07-29 13:58:37] Payload POST received from Bitbucket
[2014-07-29 13:58:37] Exec: cd /var/www/html/acme
---------------------
[2014-07-29 13:58:37] Updating Git code for all branches
[2014-07-29 13:58:37] Exec: /usr/bin/git checkout --force master
[2014-07-29 13:58:37] Your branch is ahead of 'origin/master' by 1 commit.
[2014-07-29 13:58:37]   (use "git push" to publish your local commits)
[2014-07-29 13:58:37] Command returned some errors:
[2014-07-29 13:58:37] Already on 'master'
---------------------
[2014-07-29 13:58:37] Exec: /usr/bin/git fetch --progress --prune origin
[2014-07-29 13:58:39] Command returned some errors:
[2014-07-29 13:58:39] error: Ref refs/remotes/origin/master is at 8213a9906828322a3428f921381bd87f42ec7e2f but expected c8f9c00551dcd0b9386cd9123607843179981c91
[2014-07-29 13:58:39] From bitbucket.org:acme/acme
[2014-07-29 13:58:39]  ! c8f9c00..8213a99  master     -> origin/master  (unable to update local ref)
---------------------
[2014-07-29 13:58:39] Unable to fetch Git data

이 문제를 해결하려면(나의 경우) 지점이 출발지보다 앞서 있는 경우 먼저 git push를 실행하면 됩니다.

오래된 건 알지만 나름대로 해결책이 있어요소스 트리를 사용하고 있기 때문에 다른 사용자가 새 분기를 만들기 때문에 이 오류가 발생합니다.소스 트리가 이에 대해 혼동하고 있습니다."원격 분기에서 풀" 콤보 상자 옆에 있는 "새로 고침" 버튼을 누르면 소스 트리가 분기 목록을 업데이트한 것처럼 보이고 이제 성공적으로 풀할 수 있습니다.

같은 문제가 발생했습니다. 원격 브랜치를 삭제하고 마스터에서 새 브랜치를 생성한 후 이전 피쳐 브랜치에서 새 피쳐 브랜치로 변경 내용을 병합했습니다. 이제 풀 앤 푸시 요청이 제대로 작동했습니다.

Gitrepo에서 풀 수 없어서 위에 언급한 것과 같은 오류가 발생했습니다.나의 경우, 이 설정 페이지에서 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭 -> 설정을 클릭 -> 원격을 클릭 -> 제거 버튼을 클릭 -> 구성 원격에 대한 세부 정보 제공: "origin", URL:"을 클릭하여 단계를 수행했습니다.-> 그리고 '신규 추가/저장' 버튼을 클릭 -> OK를 클릭했습니다.

위와 같이 변경한 후에는 원하는 분기를 성공적으로 풀/페치할 수 있습니다.

지속적으로 검색한 결과 업스트림 설정/제거를 해제하는 솔루션이 도움이 되었습니다.

git branch --unset-upstream

언급URL : https://stackoverflow.com/questions/11796580/git-pull-error-error-remote-ref-is-at-but-expected

반응형