Git에서이 메시지를 받았습니다.
원격 '원점'에서 가져 오기를 요청했지만 분기를 지정하지 않았습니다. 현재 분기에 대해 구성된 기본 원격이 아니므로 명령 줄에서 분기를 지정해야합니다.
누구든지 설명 할 수 있습니까? 그리고 그것을 고치는 방법이 더 중요합니까?
답변:
"원본"원격 저장소에서 가져올 브랜치를 git에게 알려야합니다.
기본 브랜치 (마스터)가 git pull origin master
필요 하므로 문제를 해결해야합니다.
참조 git help branch
, git help pull
그리고 git help fetch
더 많은 정보를위한.
git pull
끌어오고 병합 하므로 그 동작은 체크 아웃 된 브랜치에 따라 완전히 달라지며 분리 된 HEAD (브랜치 체크 아웃 없음)에서는 어떤 브랜치를 끌어 올 것인지 알 수 없습니다.
문제를 해결하려면 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 branch --set-upstream master origin/master
-u
옵션은 git branch
내 버전 1.8.5.3에서 문서화되지 않았기 때문에 여기에서 문서화하는 것이 훨씬 더 중요합니다. 그리고 아시다시피이 옵션은 버전 1.7. *에서 사용할 수 없었습니다. 의 -u
약자 이므로 @EvanDonovan의 의견으로 인해 --set-upstream
인수의 순서가 반대로 --set-upstream
바뀌어야 하지 않습니까?
git branch -u origin/master master
) 명령을 사용하면 예상 / 의도대로 작동합니다. "원점에서 원격 분기 마스터를 추적하도록 설정 한 분기 마스터."
-u
스위치가 실제로 하지 의 짧은 형태 --set-upstream
. 인수의 순서는에 대한 순서와 효과적으로 반대입니다 --set-upstream
. 나는 --set-upstream-to
( "-to"에주의하라)가 소개 된 것은 나중에 야 생각한다. 이것은 -u
이제 실제로는 약어이다.
메시지에 대한 내용이 정확히 무엇인지 알려줍니다. 현재 브랜치는 origin의 브랜치와 연결되어 있지 않습니다 (추적되지 않음) . 그래서 git은 무엇을 가져와야할지 모릅니다.
무엇을해야합니까? 조건에 따라서...
대부분의 일반적인 상황 에서 원본 의 마스터 에서 복제 된 마스터 에서 분기 된 일부 로컬 분기 xyz에서 작업하고 있습니다 . 이를 해결하는 일반적인 방법은 마스터 로 전환 하고 끌어서 원본 과 동기화 한 다음 xyz 및 .rebase master
그러나 귀하의 상황에서는 다른 작업을 원할 수 있습니다. 지점 및 리모컨에 대한 세부 정보와이를 사용하려는 의도를 모르면 알 수 없습니다.