programing

git 원격 분기 풀에서 원격 참조를 찾을 수 없습니다.

newstyles 2023. 10. 26. 20:49

git 원격 분기 풀에서 원격 참조를 찾을 수 없습니다.

왜 안 되는지 모르겠어요.내가 할때는git branch -a, 이것이 제 눈에 보이는 것입니다.

enter image description here

온라인 GitHub 저장소의 다운로드 관리자에서 빼려고 합니다.난 시도했다.

  • git pull, 하지만 어느 지점에서 손을 떼야 할지 모르겠다는 불만을 토로합니다.
  • git pull origin, 어느 가지인지 모릅니다
  • git pull origin downloadmanager주는fatal: Couldn't find remote ref downloadmanager. Unexpected end of commands stream
  • git pull origin remotes/origin/DownloadManager주는fatal couldn't find remote ref remotes/origin/DownloadManager. Unexpected end of commands stream

제가 놓친 게 있나요?Xcode에서는 저장소에 연결하려고 하면 아무것도 나타나지 않습니다.저는 과거에 그것을 추진할 수 있었습니다.하지만 가장 최근의 변화를 끌어내기 전에는 다시 밀어붙일 수 없습니다.

로컬 지점과 원격 지점이 섞여 있는 경우가 있으니 주의하시기 바랍니다!

지금 로컬 지점 다운로드 관리자에 있다고 가정합니다(git checkout downloadmanager)

다음 옵션이 있습니다.

  1. 매번 pull/push 명령에서 remote branch 지정(대소문자 구분):

    git pull origin DownloadManager

    아니면

    git pull origin downloadmanager:DownloadManager


  1. 다음 푸시 시 추적 분기 지정:

    git push -u origin DownloadManager

    (-u--set-upstream의 짧은 형태입니다.)

    다운로드 관리자가 지속됩니다.구성에서 Manager 링크를 자동으로 다운로드합니다(다음 단계와 동일한 결과).


  1. 기본 원격 추적 분기 설정(itit config default remote tracking branch):

    git branch -u downloadmanager origin/DownloadManager

    (참고로 분기 명령어 -u의 git 1.8은 --set-upstream-to의 짧은 형식이므로 사용하지 않는 --set-upstream와 약간 다릅니다.)

    또는 수동으로 구성을 편집합니다(이 방식이 좋습니다).

    git config --local -e

    -> 편집기가 열립니다.아래에 블록을 추가합니다("마스터" 블록 뒤에 맞춥니다.

    [branch "downloadmanager"]
            remote = origin
            merge = refs/heads/DownloadManager
    

다음과 같은 단계를 거치면 쉽게 사용할 수 있습니다.

git pull

TortoorgeGit을 사용하는 경우: repo에서 오른쪽 클릭 -> TortoorgeGit -> 설정 -> Git -> local .git/config 편집

로컬 리포지토리에서 원격 분기를 처음 식별할 수 없기 때문에 이 오류가 발생합니다.그러니까 먼저 하셔야 돼요.다음 명령을 사용하여 이 작업을 수행할 수 있습니다.

git remote add origin 'url_of_your_github_project'

git push -u origin master

만약 이 대답들 중 아무 것도 통하지 않는다면, 나는 당신의 것을 조사하는 것으로 시작할 것입니다..git/config문제가 발생하는 분기에 대한 참조를 위해 파일을 작성하고 이를 제거합니다.

원격 분기가 삭제(또는 이름 변경)된 경우 이전 분기를 가져오려고 하면 다음과 같은 오류가 발생할 수 있습니다.

$ git fetch --prune --all

  Fetching origin
  fatal: couldn't find remote ref refs/heads/old-branch
  error: Could not fetch origin

로컬 git 구성이 여전히 이전 분기를 참조하는지 확인합니다.

  $ git config --get-all remote.origin.fetch

    +refs/heads/*:refs/remotes/origin/*
    +refs/heads/old-branch:refs/remotes/origin/old-branch
    +refs/heads/master:refs/remotes/origin/master

이전 참조 항목을 제거하면 가져오기 문제를 해결할 수 있습니다.

$ git config --unset-all remote.origin.fetch

$ git fetch --prune --all
  Fetching origin
  ...
   * branch            HEAD       -> FETCH_HEAD

GitHub에서 기본 지점명을 master에서 main으로 변경하여 동일한 문제에 직면하였습니다.git pull origin master저한테는 안 통했어요.

이거 먹어봐요.
git pull origin main분기 이름 충돌로 인해 문제가 발생한 경우 이 문제를 해결할 수 있습니다.

Git의 분기 이름은 대소문자를 구분합니다.Git에서 '보이는' 분기 이름(정확한 케이싱 포함)을 보려면 다음을 사용합니다.

git branch -vv

... 이제 사용할 브랜치 이름을 확인할 수 있으므로 다음 작업을 수행합니다.

git pull origin BranchName 

여기서 'BranchName'은 지점의 이름입니다.케이스와 정확하게 일치하는지 확인합니다.

OP(Original Poster)의 경우 명령은 다음과 같습니다.

git pull origin DownloadManager

저는 Github에서 이미 삭제된 나뭇가지를 뽑으려고 했기 때문입니다.

당신의 레포에서 당신의 지점을 확인하세요. 아마 누군가 그것을 삭제할지도 모릅니다.

저의 경우, Github에서 기본 브랜치에 대한 네이밍 변경으로 인해 이 오류가 발생했습니다.

그래서 사용하는 대신에.

git pull origin master

당신은 사용해도 좋습니다.

git pull origin main

원격 지점을 추적하도록 로컬 지점을 설정해야 하는데, 이 지점들이 서로 다른 대문자를 사용하는 경우에는 자동으로 추적되지 않습니다.

시도:

git branch --set-upstream downloadmanager origin/DownloadManager
git pull

업데이트:

'--set-upstream' 옵션은 더 이상 지원되지 않습니다.

git branch --set-upstream-to downloadmanager origin/DownloadManager
git pull

제 경우에는 지점에서 자본금을 잘못 사용했습니다.ABC-100내가 했을 때git checkout abc-100그 다음에 작업을 했습니다.내 해결책은 코드를 병합하는 것이었습니다.abc-100안으로ABC-100삭제합니다.abc-100.

안녕하세요, 저는 이 댓글들 덕분에 이 문제를 해결했습니다.저는 초보자라서 이 질문이 7년 전에 해결된 이후로 git 및 github의 "주요 bratch"에 대한 새로운 표준이 더 이상 없습니다.master오히려main이것은 오래된 코드에 대한 스택 오버플로에서 일부 부서진 부분을 생성하고 있습니다. Github 공지 사항은 여기에서 확인할 수 있습니다: 마스터에서 기본 분기 이름 변경.

이 때문에 "주요 지점"을 관리하는 이름이 무엇인지 먼저 확인합니다.git show-refGit Bash를 사용한다고 가정해 보겠습니다.오래된 튜토리얼이나 오래된 책을 보고 있다면 이것이 원인일 수 있습니다.

다음과 같이 표시되어야 합니다.

$ git show-ref
3fba1252f165a909f14dd63e1177c543659dffd6 refs/heads/**main**
9264e8f4193fa1be7ccb5780059bc67f68cf107e refs/remotes/origin/**main**

보다 보면master그것들 중 하나로 그것을 바꿉니다.main, 이 부분을 생략하지 않을 경우:

$ git branch -m master main
$ git push -u origin main

어쨌든 내게 효과가 있었던 건

$ git pull origin main --allow-unrelated-histories 
$ git push -u origin main 

원격 지점 이름이 "DownloadManager"이기 때문에 지점을 체크아웃할 때 이 지점에 "DownloadManager"라는 새로운 이름을 부여하게 됩니다.

하지만 이것은 단지 당신의 지역 이름일 뿐이지 리모트 레퍼명은 아닙니다.

원격 분기가 누락되어 실패했습니다(이전 병합 실행 시 삭제됨).

제 경우에는 로컬 지점에 서버에서 제거된 지점이 있었습니다.

로컬 브랜치에서 제거만 하면 풀이 예상대로 작동합니다.

누군가가 서버의 폴더에서 같은 폴더로 저장소를 복제하려고 했기 때문에 문제가 발생했습니다.이것은 내가 복제하려고 했던 저장소에 ".git" 폴더를 만들어서 모든 것을 깨뜨렸습니다.복제하고 싶은 레포에서 ".git" 폴더를 삭제하면 수정됩니다.

새 레포를 만들었지만 이 레포로 만든 readme.md 이 없었을 수도 있습니다.이로 인해 온라인 보고서에 기본 분기가 설정되지 않을 수 있습니다.github 또는 gitlab에서 수동으로 readme.md 을 추가한 다음 마스터/메인 브랜치를 생성해야 합니다.

설정에서 기본 분기를 설정할 수도 있습니다.제 경우에는 후자를 할 수가 없어서 첫 번째를 하고 오리진 메인으로 푸시를 할 수 있었습니다.

이 오류는 가져오려는 분기에 철자 오류가 있거나 분기 이름이 없는 경우에 발생합니다.

깃허브가 기본 지점명을 마스터에서 메인으로 변경한 것은 최근입니다.

제 경우에는 그렇지 않았습니다.

저는 제 사용자 이름과 같은 지점 이름을 사용하고 있습니다.그런 다음 먼저 지점으로 푸시한 다음 지점에서 전체 지점 및 업데이트 지점으로 병합되는 풀 요청을 수행해야 했습니다. 풀 요청은 나중에 제대로 작동합니다.

재부팅 후 VSCode의 마지막 복사본이 다시 열렸을 때 이 문제가 발생했습니다.위의 수정은 작동하지 않았지만 탐색기를 통해 VSCode를 닫았다가 다시 열었을 때는 작동했습니다.다음은 제가 수행한 단계입니다.

//received fatal error
git remote remove origin
git init
git remote add origin git@github:<yoursite>/<your project>.git
// still received an err 
//restarted VSCode and folder via IE 
//updated one char and resaved the index.html  
git add .
git commit -m "blah"
git push origin master

저 자신의 경우, 저는 단지 "마스터"에서 "메인"으로 변경했을 뿐이고, 원격 레포에서 끌어낼 수 있었습니다.

언급URL : https://stackoverflow.com/questions/11552437/git-pull-remote-branch-cannot-find-remote-ref