자식 체크 아웃 태그, 분기에서 자식 풀 실패


133

git 저장소를 복제 한 다음 태그를 체크 아웃했습니다.

# git checkout 2.4.33 -b my_branch

이것은 괜찮지 만 git pull지점에서 실행하려고하면 git 이이 오류를 뱉어냅니다.

현재 지점에 대한 추적 정보가 없습니다. 병합하려는 지점을 지정하십시오. 자세한 내용은 git-pull (1)을 참조하십시오.

git pull <remote> <branch>

이 지점에 대한 추적 정보를 설정하려면 다음을 수행하십시오.

git branch --set-upstream new origin/<branch>

내가 원하는 git pull단지 마스터 브랜치를 업데이트하고 (이 태그 어쨌든입니다) 혼자 현재 분기를 떠날. 이와 같은 것이 가능합니까?

내가 필요로하는 이유는 항상 자동으로 스크립트를 가지고 있기 때문에 git은 항상 저장소를 가져오고 위의 오류로 인해 실패합니다.


가능한 git pull
데이지

답변:


114

편집 : 최신 버전의 Git에서는 --set-upstream master더 이상 사용되지 않으며 --set-upstream-to대신 다음을 사용해야 합니다.

git branch --set-upstream-to=origin/master master

프롬프트가 표시되면 다음을 실행할 수 있습니다.

git branch --set-upstream master origin/master

그 후에는 git pull코드를 업데이트하기 위해 간단히 실행할 수 있습니다.


5
이것은 문제를 해결했다. 그러나 나는 여전히 내 마스터 지점이 원점에 대한 참조를 잃어 버린 방법을 이해해야합니다. 나는 지점에 있었고했다 git checkout master. git pull원점에 대한 참조 가 없어서 할 수 없었 습니다. 이제 작동합니다. 감사합니다!
Ariel

'git branch --set-upstream-to = origin / master master my_branch'가 저를 위해 일했습니다
Blue Clouds

90

나는 같은 문제가 있었고이 명령으로 고쳤다.

$ git push -u origin master

도움말 파일에서 -u는 기본적으로 pull의 기본값을 설정합니다.

-u, --set-upstream`

  For every branch that is up to date or successfully pushed, add 
  upstream (tracking) reference, used by argument-less git-pull(1) and
  other commands. For more information, see branch.<name>.merge in 
  git-config(1).

48

다음 명령을 시도하십시오 :

git pull origin master
git push -u origin master

9

다음을 사용하여 마스터 지점으로 다시 전환하십시오.

$ git checkout master

그런 다음 git pull작업 을 실행하십시오.

$ git pull origin/master

나중에 my_branch다시 다시 전환 할 수 있습니다 .


6
바로 내가 피하려고하는 것입니다. "공식적인"방법이 있는지 알고 싶었습니다.
alesko

5

@alesko : git pull체크 아웃 후에 만 지점 my_branch을 업데이트 할 수는 없습니다 master. 시나리오에서 현재 분기->로 병합하기
때문에git pullmy_branch

@Simon : 그것은 또한 추진을 할 것입니다. 왜 그런 겁니까?

$ git branch -u origin/master
Branch master set up to track remote branch master from origin.

그리고 문서에 따르면 :

-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.

4

먼저 올바른 지점에 있는지 확인하십시오.
그런 다음 (한 번만) :

git branch --track

그 후 이것은 다시 작동합니다.

git pull

4

여러 지점이있을 수 있습니다. 그리고 현재 지점은 원격에서 업스트림을 설정하지 않았습니다.

이 문제를 해결하는 단계 :

git checkout branch_name
git branch --set-upstream-to=origin/remote_branch_name local_branch_name

예 :

// this set upstream of local branch develop to remote branch  origin/develop,
git branch --set-upstream-to=origin/develop develop

이 작업을 수행 한 후 git pull지정된 분기에서 가져옵니다.


3

풀하려는 브랜치를 지정할 수 있습니다.

git pull origin master

또는 로컬 마스터 브랜치가 github 마스터 브랜치를 업스트림으로 추적하도록 설정할 수 있습니다.

git branch --set-upstream-to=origin/master master
git pull

이 분기 추적은 저장소를 복제 할 때 자동으로 설정되지만 (기본 분기의 경우에만) 기존 저장소에 원격을 추가하는 경우 추적을 직접 설정해야합니다. 고맙게도 git이 제공하는 조언을 통해 수행 방법을 쉽게 기억할 수 있습니다.

--set-upstream은 git 1.9.x에서 더 이상 사용되지 않습니다. 앞으로는 다음과 같은 것을 사용하고 싶습니다.

git branch -u origin/master

이미 마스터를 체크 아웃했다고 가정합니다. 그렇지 않으면 git branch -u origin/master master작동합니다


2

이 시도

git checkout master

git pull origin master

2
이것은 실제로 질문에 대답하지 않습니다. 또한 허용 된 답변이 없지만 최고 투표 한 사람은이 오래된 질문에 대한 답변으로 훨씬 더 적합합니다
fejese

1

현재 지점에 대한 추적 (업스트림)을 설정해야합니다.

git branch --set-upstream master origin/master

--track 플래그를 사용할 수있는 대신 이미 사용되지 않습니다.

git branch --track master origin/master

또한 @casey가 주목하는 문서 참조가 좋습니다.

-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.

1

나를 위해 일한 것은 : git branch --set-upstream-to = origin master 다시 당기면 master에서 업데이트 만 받았으며 경고가 사라졌습니다.


1

나처럼 항상이 작업을 수행해야하는 경우 .gitconfig파일에 다음을 추가하여 자동으로 별칭을 설정하면됩니다 .

[alias]
    set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD`

메시지가 표시 There is no tracking information...되면를 실행 git set-upstream한 다음 git push다시 실행 하십시오.

https://zarino.co.uk/post/git-set-upstream/ 덕분에


0

업데이트 만 다운로드하려면 :

git fetch origin master

그러나 이것은 단지라는 참조를 업데이트합니다 origin/master. 로컬을 업데이트하는 가장 좋은 방법 master은 다른 의견에 언급 된 체크 아웃 / 병합입니다. 로컬 이 켜져 있는 주 트렁크에서 분기되지 않았다는 것을 보장 할 수 있다면 전류 를 새로운 지점 에 매핑 하는 데 사용할 는 있지만 정기적으로 사용하는 것이 가장 좋은 해결책은 아닙니다 ...masterorigin/mastergit update-refmaster


0

이 명령은 더 이상 사용되지 않습니다. git branch --set-upstream master origin/master

따라서 추적을 설정하려고 할 때 이것이 나를 위해 일한 명령입니다.

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