2011-09-12 3 views
117

TL; DR : 끌 수없는 "추적 된"지점이 있습니다.병합하려는 지점을 알려주지 않고 풀어달라고 요청했습니다

그래서 나는 여기 "버킷-4"에서이다 :

$ git branch -v 
    bucket-1  410f7b5 * gh-53 * gh-48 * "Share App" 
    bucket-2  7ed70a2 * upgrade to SOLR 3.3.0 
    bucket-3  400ffe4 * emergency fix prod issue 
* bucket-4  64c2414 Merge branch 'bucket-3' into bucket-4 
    master   8dc4854 [ahead 1] * gh-73 

내가에서 변화를 끌어 싶습니다 내 원격 :

$ git pull 

You asked me to pull without telling me which branch you 
want to merge with, and 'branch.bucket-4.merge' in 
your configuration file does not tell me, either. Please 
specify which branch you want to use on the command line and 
try again (e.g. 'git pull <repository> <refspec>'). 
See git-pull(1) for details. 

If you often merge with the same branch, you may want to 
use something like the following in your configuration file: 

    [branch "bucket-4"] 
    remote = <nickname> 
    merge = <remote-ref> 

    [remote "<nickname>"] 
    url = <url> 
    fetch = <refspec> 

See git-config(1) for details. 

흠이, 홀수, 내가 이미 추가 생각 "bucket-4"를 추적 지점으로 사용합니다. "추적"으로

$ git remote show origin 
* remote origin 
    Fetch URL: [email protected]:abcd/main.git 
    Push URL: [email protected]:abcd/main.git 
    HEAD branch (remote HEAD is ambiguous, may be one of the following): 
    bucket-3 
    master 
    Remote branches: 
    bucket-1  tracked 
    bucket-2  tracked 
    bucket-3  tracked 
    bucket-4  tracked 
    master   tracked 
    Local branches configured for 'git pull': 
    bucket-1  merges with remote bucket-1 
    bucket-2  merges with remote bucket-2 
    bucket-3  merges with remote bucket-3 
    master   merges with remote master 
    Local refs configured for 'git push': 
    bucket-1  pushes to bucket-1  (up to date) 
    bucket-2  pushes to bucket-2  (up to date) 
    bucket-3  pushes to bucket-3  (up to date) 
    bucket-4  pushes to bucket-4  (local out of date) 
    master   pushes to master   (fast-forwardable) 

실제로 버킷-4가 표시되어, 아직 어떻게 든 그것은 푸시에 대해 구성,하지만 당기지 : 보자.

.git/config 파일을 보면, 대부분의 내 브랜치는 "원격"및 "병합"항목을 볼 수 있지만 버킷 4는 볼 수 없습니다. 이것없이 어떻게 "추적되는"것으로 간주 되는가?

[remote "origin"] 
    url = [email protected]:abcd/main.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
[branch "rel-2011-07-07"] 
    remote = origin 
    merge = refs/heads/rel-2011-07-07 
[branch "bucket-1"] 
    remote = origin 
    merge = refs/heads/bucket-1 
[branch "bucket-2"] 
    remote = origin 
    merge = refs/heads/bucket-2 
[branch] 
    autosetupmerge = true 
[branch "bucket-3"] 
    remote = origin 
    merge = refs/heads/bucket-3 

는 여기 가능성이 솔루션은 내 config 파일에서 버킷 4 remote/merge 항목을 추가하는 것을 알 수있다. 그러나 이것 없이는 어떻게 "추적"되는 것으로 간주됩니까? bucket-4가 로컬에서 생성 된 다음이 저장소에서 서버로 푸시되었습니다. 그래서이 브랜치에 대해 올바르게 추적을 설정하지 않은 것 같습니다.

앞으로 모든 로컬 브랜치에서 리모컨을 올바르게 추적 할 수 있도록 추가 할 수있는 구성이 있습니까?

+2

이 질문은 올바른 방향으로 나에게 지적했다. 나는 끌어낼려고했던 지점의 .git/config 파일에 항목을 추가해야했다. –

+0

그래, 저도 그걸 할 길은 Mark Longair가 git 브랜치 --set-upstream bucket-4 origin/bucket-4로 설명했습니다. –

답변

183

그것은 bucket-4 pushes to bucket-4라고 말합니다. 분기를 푸시 할 때 기본값은 리모컨에서 일치하는 이름을 가진 푸시 버튼으로 푸시하기 때문입니다. 로컬 브랜치가 원격 추적 브랜치를 추적하고 있고 원격 추적 브랜치가 원격 리포지토리의 다른 이름을 가진 브랜치에 해당하는 경우에도 여전히 기본값 인 입니다. 참고 :

가장 간단한 방법 originbucket-4bucket-4 사이의 연결을 설정하는 것은 당신이 밀어 다음 번에, 당신이 있는지 확인하는 것입니다 : 또는

git push -u origin bucket-4 

, 당신은 할 수 있습니다 :

git branch --set-upstream bucket-4 origin/bucket-4 

어떻게 심지어 간주됩니다

이없이 "추적":


직접 몇 가지 질문에 대답하려면? 이 경우

은 그렇지 않다 - 당신의 자식 설정에는 branch.bucket-4.merge 또는 branch.bucket-4.remote이 없다면 그것은 어떤 의미에서 원격 추적 브랜치를 추적 아닙니다. git remote show origin의 결과는 기본적으로 지점이 푸시 될 위치를 보여줍니다.

앞으로 모든 로컬 브랜치에서 리모컨을 올바르게 추적하도록 추가 할 수있는 구성이 있습니까?

나는있을 것이라고 생각하지 않습니다.내가 로컬에서 bucket-4을 만들었을 때 원격 추적 브랜치가 존재하지 않았으므로 그 시점에서 설정할 수 없으므로 기본 동작이 혼란 스럽습니다. 먼저 업스트림 저장소에있는 해당 지점의 첫 번째 git push-u을 추가하는 것을 기억하면됩니다.

도움이 되었기를 바랍니다.

+7

"-u"매개 변수가 트릭을했습니다. – neoneye

+7

'git branch --set-upstream'가 풀을하기 전에 완벽하게 작동했습니다. – ohaal

+0

git branch --set-upstream 버킷 -4 원점/버킷 -4가 나를 위해 일했습니다 :-) – Aliza

3

git branch --set-upstream <branch> origin/<branch> (적어도 내 버전) 1.8.2.3 이상 사용되지 않습니다.

대신 git branch --set-upstream-to=origin/<branch> <branch>을 사용하십시오.

+2

[Mark 's answer] (http://stackoverflow.com/a/7388440/456814)에 대한 의견이 있으십니까? 또한 실제로는 [Git version 1.8.0] (https://github.com/git/git/blob/v2.0.4/Documentation/RelNotes/1.8.0.txt#L42-L47)에서 더 이상 사용되지 않습니다. –

관련 문제