Что это означает, когда указатель ссылки указывает на две разные фиксации? - PullRequest
0 голосов
/ 25 сентября 2019

Я вижу heroku/master, на изображении ниже, указывает на два разных коммита, и я не уверен, почему это так!enter image description here

это произошло после того, как я запустил команду git branch -f heroku/master 67520d9f.Кто-нибудь может объяснить это?

1 Ответ

1 голос
/ 26 сентября 2019

Проблема здесь в том, что вы создали свою собственную (локальную) ветку с именем heroku/master, а также имя для удаленного отслеживания 1 , которое пишется heroku/master.

Технически, полное имя ветви равно refs/heads/heroku/master. полное имя имя удаленного слежения равно refs/remotes/heroku/master.Эти полные имена разные, поэтому их можно отличить друг от друга.Но это сбивает с толку, как будто вы были на вечеринке, где всех зовут Брюс:

  • БРЮС: Брюс!Как дела?Вы встречали Брюса?
  • БРЮС: Нет. Привет, Брюс!Откуда вы знаете Брюса?
  • БРЮС: Мы оба некоторое время работали на Брюса.

Решение этой проблемы простое: используйте некоторые другие имена для вашей ветки(ES).Переименуйте вашу ветку heroku/master в h-master, например:

git branch -m heroku/master h-master

Теперь у вас будут master и h-master как (локальные) имена ветвей, а heroku/master зарезервировано для одного удаленного-tracking name.


1 Git называет эти имена филиалов удаленного слежения .Это память вашего Git'а об именах веток, найденных на каком-то другом Git.Ваш Git запоминает другого Git под именем remote .Затем ваш Git берет их имена ветвей - например, master - и меняет их для использования в вашей собственной работе.Измененные имена имеют имя удаленного, прикрепленного на передней панели, так что если у вас есть пульт с именем fred, а у другого Git есть ветвь с именем wilma, вы в конечном итоге получите fred/wilma в качестве удаленногоимя для отслеживания.

Наиболее распространенное имя для удаленного доступа - origin, поэтому большинство людей получают локальное master и имя для удаленного отслеживания origin/master.Некоторые рабочие процессы Git требуют второго пульта, обычно называемого upstream.Рабочие процессы Heroku требуют удаленного доступа с именем heroku, поэтому у вас есть пульт с именем heroku.Поскольку ваш другой Git с именем heroku имеет ветку с именем master, ваш Git создаст heroku/master в качестве имени для удаленного отслеживания для heroku s master.

...