У меня на локальном компьютере есть репозиторий Git, который я клонировал со своего удаленного сервера. Хранилище Git, из которого я клонировал, является голым хранилищем.
Одна вещь, которая все еще озадачивает меня, состоит в том, что, когда были внесены изменения в источнике, и я git pull origin master
обновляю свой локальный репозиторий, git status
затем говорит мне, что я X фиксирует перед источником, где X количество коммитов, которые я только что вытащил.
Это несмотря на то, что журналы фиксации уже идентичны.
Поэтому я всегда делаю git push origin master
после этого, но мне просто интересно, может ли кто-нибудь объяснить, почему это необходимо, и могу ли я делать это неправильно.
Мне кажется, что если я просто вытяну изменения из источника, два репозитория должны быть идентичны. Так почему же мне сказали, что я впереди? Связано ли это с тем, что это пустой репозиторий?
Для ясности, вот ситуация чуть подробнее:
У меня есть пустой репозиторий (хаб) на удаленном сервере. В этом репо есть два клона: «dev» на моем локальном компьютере и «staging» на том же сервере, что и origin.
Когда я делаю изменения в dev, я затем git push origin master
передаю их в голое репозиторий "hub". Затем я вхожу на удаленный сервер, cd
в «промежуточное хранилище» и выполняю git pull origin master
, чтобы обновить «промежуточное состояние» из «концентратора».
После того, как я это сделал, если я сравню журналы концентратора и промежуточной фиксации, используя git log --pretty=oneline
, я могу видеть, что они идентичны.
Однако, если я сделаю git status
в директории «staging», я получу следующее:
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Итак, я обычно делаю git push origin master
оттуда, и мне говорят:
$ git push origin master
Everything up-to-date
Все работает должным образом, но у меня просто возникает этот мучительный вопрос, не допустил ли я ошибки при установке репозиториев, или это нормально ...