Герои с использованием git branch сбивают с толку!
-
22-07-2019 - |
Вопрос
Хорошо, у меня есть большой проект на github, в который я не должен сливать свою маленькую ветку Stacia. Тем не менее, похоже, что Heroku воспринимает MASTER только серьезно. Похоже, что я нажал на свою ветку, но, например, если у меня есть только моя ветка, она даже действует так, как будто на сервере нет кода. Я даже не могу установить свои гемы, так как файл .gems находится в моей ветке.
По сути, я даже не хочу, чтобы Heroku знал, что есть мастер. Я просто хочу использовать мою тестовую ветку Stacia. Но он продолжает игнорировать мою местную ветку. Есть ли способ сделать это? И опять же, я не хочу ничего перезаписывать в главном репозитории Github (eeek!), Но было бы неплохо, если бы у меня были master и моя ветка на heroku, и я объединил их там.
Я абсолютный новичок (на окнах не меньше), поэтому, пожалуйста, потерпите меня.
Решение
Первый шаг - убедитесь, что вы перебазировали свою локальную ветку поверх ее главной (предположим, она находится в репозитории 'mainGitHubRepo')
git fetch mainGitHubRepo master
git checkout -b mainGitHubMaster mainGitHubRepo/master
Затем вернитесь в свою ветку и воспроизведите ее поверх mainGitHubMaster:
git checkout Stacia
git rebase mainGitHubMaster
Как georgebrock в комментарии, вам не нужно создавать промежуточную локальную ветвь mainGitHubMaster
: вы можете напрямую перебазировать поверх ветки выборки.
git checkout Stacia
git rebase maingithubrepo/master
После этого вы можете перенести свою ветку на ветку GitHub , а затем сделайте запрос на извлечение .
Чтобы отправить локальную ветку на установленный пульт, вам просто нужно использовать:
git push REMOTENAME BRANCHNAME
.
Если вы не хотите использовать одно и то же имя в удаленной ветке, вы можете использовать:
git push REMOTENAME LOCALBRANCHNAME: REMOTEBRANCHNAME
.
(именно об этом Дэвид Доллар упоминает в его ответ : git push heroku yourbranch: master
)
Примечание: если у вас есть собственный форк на GitHub, вы можете напрямую работать с 'master' для этого форка, то есть ваш запрос на извлечение будет поступать из ветки 'master', что увеличивает ваши шансы на рассмотрение.
Но вышеупомянутый процесс остается в силе: ваш запрос извлечения должен привести к тривиальным слияниям для того, кто будет интегрировать ваши изменения, поэтому шаг ребазирования должен быть выполнен локально.
Другие советы
Если вы хотите добавить другую ветку в Heroku, вы можете сделать что-то вроде
git push heroku yourbranch:master