Отслеживать ветку после создания? - PullRequest
2 голосов
/ 07 апреля 2011

Вот мой сценарий (очень простой): я создал ветку локально, без использования --track. Я сделал несколько коммитов и толкнул их так:

git push origin test

Но теперь я не хочу вводить origin test каждый раз, когда я нажимаю эту ветку, поэтому я бы хотел, чтобы она отслеживала origin/test (или это наоборот?).

Как мне этого добиться? Я попробовал:

git branch --set-upstream origin/test

и это не сработало. Когда я пытаюсь подтолкнуть его, он говорит «все в курсе», и создается впечатление, что он создал реальную ветку под названием «origin / test», а это не то, что я хочу.

Обновление: вот содержимое .git/config (после запуска --set-upstream):

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@***.unfuddle.***/***.git
    fetch = +refs/heads/*:refs/remotes/unfuddle/*
    push = refs/heads/master:refs/heads/master
[gui]
    wmstate = normal
    geometry = 1098x644+298+187 207 207
[branch "test"]
    remote = origin
    merge = refs/heads/test

Ответы [ 4 ]

6 голосов
/ 07 апреля 2011

Вы забыли указать локальную ветку при вызове git branch --set-uptstream

git branch --set-upstream test origin/test

Редактировать: ОК, возможно, вы не забыли об этом (потому что последний аргумент может быть опущен), но вы хотите установитьлокальная ветвь для отслеживания удаленной ( man-страница git-branch ), вместо этого вы сделали обратное (при условии, что вы в данный момент находитесь в ветке test)

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]

Вы указываете, что origin/test дорожка test.

1 голос
/ 03 апреля 2014

--set-upstream устарело.Вместо этого используйте --track или --set-upstream-to.

git branch --track test origin/test
0 голосов
/ 08 апреля 2011

В итоге я вручную отредактировал .git/config.Вот как это выглядит сейчас:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@***.unfuddle.***/***.git
    fetch = +refs/heads/*:refs/remotes/unfuddle/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "test"]
    remote = origin
    merge = refs/heads/test

Кажется, сейчас работает.Я получил пример из другого проекта, где я настроил ветки, используя --track.

. Я думаю, что проблема заключалась в выражении push в [remote "origin"], я думаю, что это всегда заставляломастер ветка.

0 голосов
/ 07 апреля 2011

Попробуйте git push -u origin test.

...