Проблема здесь в том, что вы создали свою собственную (локальную) ветку с именем 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
.