Как получить последнюю версию ветки - PullRequest
1 голос
/ 11 марта 2020

Я клонировал удаленное репо, затем git вытащил. Это работает. Затем я переключаюсь на нашу ветку разработки (не созданную мной)

git checkout somebranch/develop

Теперь я хочу получить самую последнюю копию этой ветви:

$git status
On branch somebranch/develop
nothing to commit, working tree clean

$git pull

и получить:

There is no tracking information for the current branch.
Please specify which branch you want to merge with.

Что? Я просто хочу получить последнюю версию этой ветки!

$ git remote -v
origin  https://dev.azure.com/org/proj/_git/proj(fetch)
origin  https://dev.azure.com/org/proj/_git/proj(push)

Я также попробовал это:

git pull origin somebranch/develop

Но это дает:

fatal: Couldn't find remote ref somebranch/develop

Это не имеет смысла - я вижу это там на портале https://dev.azure.com/, и все остальные разработчики используют его.

Я просто сделал клон, переключился на ветку, теперь я хочу чтобы получить последнюю версию этой ветки. Других команд я не выполнял.

Кроме того, когда я только что сделал "git pull", он загрузил множество изменений.

Если я сделаю "git branch -a" Я вижу:

remotes/origin/somebranch/develop


$ git branch -vv 

дает:

somebranch/develop 7b2abd41b [origin/somebranch/develop: behind 92] V1/V2 SitePageData merge

Вопрос в том, как вытащить последнюю версию этой ветки? Что такое команда или набор команд для получения последней версии ветки, которая не является мастерской из репо azure git, в которой есть изменения от других разработчиков? Или кто-то ВСЕГДА должен вручную отследить, чтобы когда-либо получить последнюю версию ветки, и в этом случае почему git checkout не делает это для вас?

Ответы [ 2 ]

1 голос
/ 11 марта 2020

Вам необходимо установить отслеживание в восходящем направлении:

git branch --set-upstream-to=origin/somebranch/develop somebranch/develop

0 голосов
/ 11 марта 2020

Похоже, что ваша ветвь не имеет "удаленного аналога" - ветка, которая обычно (по умолчанию) должна выглядеть как origin/somebranch/develop

Сначала вы можете проверить это предположение:

git branch -vv | grep somebranch/develop

Если с ним «связана» удаленная ветвь (восходящая ветвь в терминах git), вы должны увидеть что-то вроде

somebranch/develop   <sha1> [origin/somebranch/develop] <last commit message>

В противном случае это выглядит так:

somebranch/develop   <sha1> <last commit message>

В этом случае вам следует «связать» вышестоящее отслеживание. На вопрос об этом технически уже был дан ответ Здесь

При желании вы можете выполнить перед фактической командой

git fetch --all # just to make sure you have an information about this branch
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...