git의 혼란스러운 오류 메시지


93

Git에서이 메시지를 받았습니다.

원격 '원점'에서 가져 오기를 요청했지만 분기를 지정하지 않았습니다. 현재 분기에 대해 구성된 기본 원격이 아니므로 명령 줄에서 분기를 지정해야합니다.

누구든지 설명 할 수 있습니까? 그리고 그것을 고치는 방법이 더 중요합니까?

답변:


93

"원본"원격 저장소에서 가져올 브랜치를 git에게 알려야합니다.

기본 브랜치 (마스터)가 git pull origin master필요 하므로 문제를 해결해야합니다.

참조 git help branch, git help pull그리고 git help fetch 더 많은 정보를위한.


2
작동하도록하려면 "마스터"브랜치 (선택된 브랜치가 없음)를 체크 아웃하고 끌어 와야했는데 문제가 해결되었습니다.
cinek

@cinek : 예, 현재 브랜치를git pull 끌어오고 병합 하므로 그 동작은 체크 아웃 된 브랜치에 따라 완전히 달라지며 분리 된 HEAD (브랜치 체크 아웃 없음)에서는 어떤 브랜치를 끌어 올 것인지 알 수 없습니다.
Cascabel 2010-06-28

@cinek : 나는 당신이 git을 처음 접했다고 생각했기 때문에 당신이 브랜치 마스터에서 완전히 표준 상태에 있었다는 것을 인정합니다.
p4bl0 2010-06-28

86

문제를 해결하려면 master분기에 있고 새로운 Git 버전 (1.8 이상)에서 원격 에서 master분기 를 가져 오려고한다고 가정합니다 origin.

git branch -u origin/master master

(다른 지점 및 / 또는 리모컨의 경우 유사합니다.)

이것을 푸시와 결합 할 수 있다면 더 짧습니다.

git push -u origin master

그 후, 평범한 git pull/ git push당신이 기대하는 것을 할 것입니다.


Git 1.7 시리즈 동안에는 스위치 git branch가 없었고 -u( git push그렇지만) 훨씬 더 오래 사용해야했습니다 --set-upstream.

git branch --set-upstream master origin/master

에 비해 인수 반전에 유의하십시오 -u. 나는이 주문을 한 번 이상 더듬었다.


참고로이 모든 것은 다음을 수행하는 축약 형이며, 여전히 명시 적으로 수행 할 수 있습니다.

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

1.7 전에 했다 이런 식으로 할 수 있습니다.


맨 위에있는 명령 (적어도 내 버전의 Git에서는)이 "origin"이라는 분기의 업스트림을 "origin / master"로 설정한다고 생각합니다. 지사가 로컬 호출하면 "마스터"나는 당신이 원하는 것이라고 생각 :git branch --set-upstream master origin/master
에반 도노반

흥미롭게 도이 -u옵션은 git branch내 버전 1.8.5.3에서 문서화되지 않았기 때문에 여기에서 문서화하는 것이 훨씬 더 중요합니다. 그리고 아시다시피이 옵션은 버전 1.7. *에서 사용할 수 없었습니다. 의 -u약자 이므로 @EvanDonovan의 의견으로 인해 --set-upstream인수의 순서가 반대로 --set-upstream바뀌어야 하지 않습니까?
hobs

그러나 내가 ( git branch -u origin/master master) 명령을 사용하면 예상 / 의도대로 작동합니다. "원점에서 원격 분기 마스터를 추적하도록 설정 한 분기 마스터."
hobs

1
@hobs : 그것은 실제로 Git의 변태입니다. -u스위치가 실제로 하지 의 짧은 형태 --set-upstream. 인수의 순서는에 대한 순서와 효과적으로 반대입니다 --set-upstream. 나는 --set-upstream-to( "-to"에주의하라)가 소개 된 것은 나중에 야 생각한다. 이것은 -u이제 실제로는 약어이다.
Aristotle Pagaltzis

와! 참으로 혼란 스럽습니다. 그것을 풀어 주셔서 감사합니다.
hobs

3

메시지에 대한 내용이 정확히 무엇인지 알려줍니다. 현재 브랜치는 origin의 브랜치와 연결되어 있지 않습니다 (추적되지 않음) . 그래서 git은 무엇을 가져와야할지 모릅니다.

무엇을해야합니까? 조건에 따라서...

대부분의 일반적인 상황 에서 원본 의 마스터 에서 복제 된 마스터 에서 분기 된 일부 로컬 분기 xyz에서 작업하고 있습니다 . 이를 해결하는 일반적인 방법은 마스터 로 전환 하고 끌어서 원본 과 동기화 한 다음 xyz 및 .rebase master

그러나 귀하의 상황에서는 다른 작업을 원할 수 있습니다. 지점 및 리모컨에 대한 세부 정보와이를 사용하려는 의도를 모르면 알 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.