git: 'log master..origin / master' не работает должным образом - PullRequest
3 голосов
/ 19 марта 2010

Я пытаюсь сравнить свою копию 'master' с той копией в удаленном репозитории, которую он отслеживает. Я думал, что следующая команда будет работать, и часто это кажется. Однако иногда он ничего не дает, и все же я знаю, что в удаленной ветви есть много изменений, которые я могу подтвердить, выполнив выборку.

git log master..origin/master

Может кто-нибудь объяснить это поведение и сказать мне, какую команду я должен использовать, чтобы определить изменения между локальным и удаленным?

[Другая часть данных: у меня случалось так, что 'git log master..origin / master' ничего не производит. Тогда я делаю тягу. Вытащить не удается, потому что у меня есть рабочая копия какого-то файла. После этого 'git log master..origin / master' показывает различия. Кажется, тяга обновила какой-то локальный журнал? Если да, то как я могу достичь этого, не делая (или не пытаясь) тянуть?]

Ответы [ 3 ]

3 голосов
/ 19 марта 2010

Это потому, что origin/master является удаленной веткой в ​​ вашем хранилище . Он показывает, где главная ветка источника была в последний раз, когда вы «смотрели» (извлечено, что является частью pull и удаленного обновления).

Когда вы извлекаете, выборка выполняется, и origin/master обновляется. Затем выполните объединение вызовов, которое может или не может дать сбой, но это не влияет на ваши удаленные ветви.

Вы также можете использовать git fetch --all или git fetch origin для получения этих обновлений.

1 голос
/ 19 марта 2010

Это покажет вам некоторые отличия только в том случае, если вы извлекли что-то из источника (к местным ссылкам на источник в вашем локальном репо).

Вот почему вы видите разницу даже после неудачного git pull:

  • это первая загрузка
  • затем попытаться объединить (и потерпеть неудачу)

, но этого достаточно для git log для извлечения необходимой информации, потому что они находятся в вашем локальном репо (после части fetch)

1 голос
/ 19 марта 2010

pull - это fetch и merge. Fetch загружает свои журналы с удаленного сервера. Я думаю, что это то, что вы наблюдаете здесь.

http://www.kernel.org/pub/software/scm/git/docs/git-pull.html

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