Как вы получаете изменения от удаленного репо, когда git отображает «Репозиторий обновлен»? - PullRequest
0 голосов
/ 02 марта 2020

Я не уверен, с чем это связано, но в моем локальном репозитории отсутствуют изменения от master / origin, и я не могу их получить.

  • Когда я пытаюсь pull, git возвращает «Репозиторий уже обновлен. Изменений нет.»
  • Я попытался merge master / origin в мое локальное хранилище, но это не приводит к изменениям.
  • Я перенес мастер / источник в локальное мастер-репо и попытался объединить локальный мастер с локальной ветвью.
  • Я объединяю master / origin to [my branch] / origin, а затем объединить.

Дело в том, что orgin / master имеет материал, который отличается от моего локального репо. Как мне сказать git «получить изменения от мастера и перенести их в мою локальную ветку»?

Похоже, это должен быть простой процесс, поэтому не знаю, в чем причина.

enter image description here

1 Ответ

2 голосов
/ 02 марта 2020

Вы спрашиваете, есть ли какой-то способ «просто сказать git, чтобы как-то сравнить две ветви» - это то, что он делает, и он не находит никаких отличий. Это root причина вашей проблемы - это не обнаружение различий, которые, по вашему мнению, есть. Вам нужно выяснить, почему эти различия не там, где вы ожидаете их увидеть.

На мой взгляд, есть две возможности:

Простая : изменения, которые вы ищете, не были перенесены на origin. Проконсультируйтесь с коллегами.

Более сложный : ваш локальный репозиторий неправильно настроен для извлечения из origin - либо origin не то, что должно быть, либо ваш master ветка не вытягивает из правильной удаленной ветки. Чтобы диагностировать проблему такого типа, выполните следующее (1):

  1. , откройте терминал в вашем редакторе (Ctrl + Backtick в VS Code)
  2. введите следующее: git remote -v
  3. вы увидите что-то вроде этого:
origin git@github.com:user/my-repository.git (fetch)
origin git@github.com:user/my-repository.git (push)

Здесь указывается, к какому удаленному серверу и хранилищу вы будете подключаться, когда вы извлекаете (извлекаете) или pu sh .

введите следующее: git branch -vv вы увидите что-то вроде этого:
develop      abcde1234 [origin/develop] last commit message on develop
master       1234abcde [origin/master] last commit message on master

Здесь перечислены все локальные ветви (ie. develop , master) и к каким удаленным ветвям они «подключены» (ie. Local develop -> origin develop).

Если мои подозрения верны, то вы найдете один или оба из следующих условий верны:

  1. источник не указывает на ожидаемый вами репозиторий, или
  2. ваша ветвь master не подключена к правильной ветви источника.

Если это так, то вы не получите коммиты, которые, по вашему мнению, находятся на origin/master, будут объединены с вашим местным филиалом.

Если ни этого не происходит, то это означает, что коммиты, которые, по вашему мнению, находятся в месте происхождения, не существуют - возможно, кто-то не сделал sh их?


(1) Я Я делаю это в Visual Studio Code на компьютере Linux. Действия могут отличаться в Windows или в полном продукте Visual Studio.

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