참조 이름이없는 git pull -u는 원점이 아닌 다른 리모트에서만 작동합니다.


1

새 분기 ( git checkout -b $BRANCH)를 체크 아웃 할 때 종종 동일한 분기 이름을 사용하여 특정 리모컨으로 푸시하려고합니다. 하나는 "원산지"라는 이름과 다른 하나는 "광산"이라는 두 개의 리모컨이 있습니다. 그런 새로운 지점을“광산”으로 밀고 싶을 때 간단히 할 수 있습니다

$ git push -u mine

이렇게하면 지점 refs/heads/$BRANCH이 원격 "광산"으로 밀고 추적이 시작됩니다.

그러나 "원산지"리모컨에는 동일한 기능이 작동하지 않습니다.

$ git push -u origin
fatal: The current branch $BRANCH has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin $BRANCH

( git push -u origin $BRANCH출력에서 알 수 있듯이을 사용하면 물론 잘 작동하지만 잘못 입력 할 수 있으므로 분기 이름을 반복하지는 않습니다.)

한 리모콘이 다른 리모콘과 다르게 취급되는 이유는 무엇입니까?

구성 파일의 관련 스 니펫 :

[remote "origin"]
    url = ssh://git@server:/path/to/public/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    fetch = +refs/pull-requests/*/from:refs/remotes/origin/pr/*
[remote "mine"]
    url = ssh://git@server:/path/to/my/repo.git
    fetch = +refs/heads/*:refs/remotes/mine/*
    fetch = +refs/pull-requests/*/from:refs/remotes/mine/pr/*

보시다시피, 이러한 구성은 동일하게 보이지만 (돌연변이) 다른 동작을 생성합니다. "origin"이라는 이름이 어떤 식 으로든 특별합니까? 아니면 다른 구성을 살펴 봐야합니까?

git 버전 2.7.0을 사용하고 있습니다.

답변:


0

추적 분기에는 원격 및 원격 분기가 연결되어 있습니다. .git / config ( branch.*.remotebranch.*.merge) 에서 분기를 확인하십시오 . 지점의 경우 리모컨은 "광산"입니다.

한 번 봐 가지고 push.default에서 git-config(1)- 기본 동작은 ( simple) 원격 지사 및 지점의 원격 두 가지의 이름이 같은 경우에만 현재 분기를 밀어하는 것입니다.


고마워,하지만 그렇지 않아 push.default입니다 simple하지만 설정이없는 branch.branchname.remote또는 branch.branchname.merge현재의 지점에 대한이. 그러나 나는 두 리모컨에 대해 완전히 다른 행동을 재현 가능하게 얻습니다.
Raphael Schweikert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.