티스토리 뷰

[Error] Your branch is based on 'origin/master', but the upstream is gone.

 

캡처

git push가 되지 않고 git status를 해봤을 때 다음과 같은 Error 가 나오는 경우

=> 처음에 local branch가 origin/master에 있어야 하는데 해당 자리에 없어서 문제 발생

(git 1.8.5에서 새로 나타난 기능)

 

해결

> git branch --unset-upstream

 

--unset-upstream: 데이터를 지우지 않고 local로만 링크를 삭제합니다. -> 언제든지 다시 연결할 수 있다.

+

원격 저장소(git init --bare)를 생성할 때 branch가 없지만 local 저장소에서 remote를 복제할 때는

origin/master와 upstream 링크가 있지만, origin/master가 아직 존재하지 않습니다.

 

upstream

 

https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%A6%AC%EB%AA%A8%ED%8A%B8-%EB%B8%8C%EB%9E%9C%EC%B9%98

  • 처음 fork를 시도한 저장소

​ (+ 다른 사람의 github의 저장소를 fork한 경우 내 github가 origin이 된다.)

  • remote-tracking branch인 (regular, local)branch와 관련된 branch이름
  • remote 저장소에 마지막으로 연결했던 순간에 branch가 무슨 commit을 가리키고 있는지 나타내는 것

 

remote-tracking branch(remote-tracking name)

 

  • 원격(remote) 목적: update를 가져오거나 가져올 위치의 URL같은 것을 기록
    • git fetch remote : 해당 원격(저장된 URL)로 이동하여 적절한 update set가져온다. + remote-tracking branch를 사용하여 update기록
    • 각 remote는 그 자체가 git 저장소이므로 branch가 있다.
  • remote에서 마지막으로 볼 수 있는 branch name을 기록하는 것

=> 다양한 작업을 편리하게 만드는 것

  • ex)git status, git fetch: 해당 분기에 대한 저장소가 upstream 저장소와 일치하는지 여부 알려준다.
  • git fetch, git merge : upstream이 올바르게 설정된 경우 올바른 작업 수행

https://stackoverflow.com/questions/21609781/why-call-git-branch-unset-upstream-to-fixup/21616241#

https://stackoverflow.com/questions/37770467/why-do-i-have-to-git-push-set-upstream-origin-branch

 

Why do I have to "git push --set-upstream origin "?

I created a local branch for testing Solaris and Sun Studio. I then pushed the branch upstream. After committing a change and attempting to push the changes: $ git commit blake2.cpp -m "Add workar...

stackoverflow.com

 

제가 이해한 것이 맞는지 확신이 서지 않습니다.

틀린 부분이 있으면 알려주세요 :)

반응형
공지사항
최근에 올라온 글