development

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

big-blog 2020. 6. 29. 07:28
반응형

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


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에서는 --set-upstream master더 이상 사용되지 않으며 --set-upstream-to대신 다음을 사용해야 합니다.

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

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

git branch --set-upstream master origin/master

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


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

$ 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).

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

git pull origin master
git push -u origin master

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

$ git checkout master

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

$ git pull origin/master

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


@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.

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

이 문제를 해결하는 단계 :

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지정된 지점에서 가져옵니다.


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

git branch --track

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

git pull

이 시도

git checkout master

git pull origin master

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

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작동합니다


You need to set up your tracking (upstream) for the current branch

git branch --set-upstream master origin/master

Is already deprecated instead of that you can use --track flag

git branch --track master origin/master

I also like the doc reference that @casey notice:

-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.

What worked for me was: git branch --set-upstream-to=origin master When I did a pull again I only got the updates from master and the warning went away.


If like me you need to do this all the time, you can set up an alias to do it automatically by adding the following to your .gitconfig file:

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

When you see the message There is no tracking information..., just run git set-upstream, then git push again.

Thanks to https://zarino.co.uk/post/git-set-upstream/


In order to just download updates:

git fetch origin master

However, this just updates a reference called origin/master. The best way to update your local master would be the checkout/merge mentioned in another comment. If you can guarantee that your local master has not diverged from the main trunk that origin/master is on, you could use git update-ref to map your current master to the new point, but that's probably not the best solution to be using on a regular basis...


This command is deprecated: git branch --set-upstream master origin/master

So, when trying to set up tracking, this is the command that worked for me:

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

참고URL : https://stackoverflow.com/questions/10147475/git-checkout-tag-git-pull-fails-in-branch

반응형