Почему git fetch, похоже, на самом деле не извлекает последние удаленные коммиты? - PullRequest
0 голосов
/ 25 марта 2020

Итак, об этом спрашивали в другом месте, но ответы, которые я вижу, похоже, не работают для меня.

У меня есть пустой удаленный репозиторий, "origin". Я работаю локально, в ветке с именем "ect010", которая есть и у пульта, и она отслеживается:

git remote show origin
* remote origin
  Fetch URL: /projects/ECT/bareChain.git
  Push  URL: /projects/ECT/bareChain.git
  HEAD branch: master
  Remote branches:
    develop tracked
    ect010  tracked
    master  tracked
    oldXML  tracked
  Local branch configured for 'git pull':
    ect010 merges with remote ect010
  Local ref configured for 'git push':
    ect010 pushes to ect010 (local out of date)

Удаленная ветка ect010 имеет несколько более свежих коммитов, чем мой локальный ect010 (я могу посмотрите эти коммиты, если я go отправлю в пустой каталог и сделаю git log).

Зная это, я делаю это из моей локальной ветки ect010:

git fetch origin ect010

Который не ' кажется, многое делает:

From /projects/ECT/bareChain
 * branch            ect010     -> FETCH_HEAD

.. и, наконец, я хочу увидеть различия между моим локальным ect010 и удаленным ect010, поэтому я попытался

git log origin/ect010

Но это показывает тот же журнал, что и мой локальный журнал, не показывая последние коммиты, которые, как я знаю, выдвигаются голыми. Почему? Очевидно, что я делаю что-то не так, но, как я вижу в некоторых других сообщениях , эта техника должна работать .. нет?

Буду признателен за любую помощь! Большое спасибо,

Арно

РЕДАКТИРОВАТЬ: (потому что я также вижу это предложение в других ответах, но кажется, что в моей конфигурации все в порядке)

Doing

git config --get remote.origin.fetch

Дает:

+refs/heads/*:refs/remotes/origin/*

.. что кажется нормальным, верно?

1 Ответ

5 голосов
/ 25 марта 2020

Когда вы делаете git fetch origin ect010, он выбирает ветку в специальную ссылку с именем FETCH_HEAD, он не обновляет ветки remotes/origin/*. И вы видите, это говорит вам так:

From /projects/ECT/bareChain
 * branch            ect010     -> FETCH_HEAD

Просто сделайте git fetch origin, поэтому он будет делать выборки в соответствии с шаблоном +refs/heads/*:refs/remotes/origin/*.

Кстати, если вы хотите просто получить этот единственный ветвь, вы должны указать полные имена и : для сопоставления, согласно шаблону выше. Т.е.

git fetch origin refs/heads/ect010:refs/remotes/origin/ect010

Но, честно говоря, я не вижу причин, почему вам это понадобится. Просто принеси все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...