2014-11-13 3 views
1

Мы имеем локальные функций ветви, A GitHub origin ветвь и Heroku staging и production удаленные ветви.Heroku: мерзавец толчок постановка местной ветви: мастер

Поскольку местные особенности стали готовы к рассмотрению более широкой аудитории, мы хотели бы, чтобы подтолкнуть их к staging:

$ git push staging local-branch-name:master 
Fetching repository, done. 
To [email protected]:app-staging.git 
! [rejected]  local-branch-name -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:app-staging.git' 
hint: Updates were rejected because a pushed branch tip is behind its remote 
hint: counterpart. Check out this branch and integrate the remote changes 
hint: (e.g. 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Часть меня хочет --force вопрос, но git push -f к удаленному табу. Я мог бы внести изменения, как говорится в «подсказке», но учитывая, что ветви, которые мы нажимаем на постановку, часто недолговечны и могут иметь мало общего друг с другом, это кажется ненужным и запутанным.

Какова процедура совместного использования промежуточного сервера на Heroku?

ответ

1

Вы по существу используете git на промежуточном сервере в качестве механизма развертывания, а не для управления версиями. У вас уже есть реальный пульт дистанционного управления на github, поэтому я не вижу вреда, действующего на ваш промежуточный сервер, до тех пор, пока вы никогда не тянете изменения от него.

Форсирование, как правило, плохая идея по двум причинам.

  1. Вы можете потерять совершает. Если вы принудительно надавите на пульт дистанционного управления, который находится впереди вашей ветки, те, кто совершает над вами, будут потеряны.

  2. Вы можете манипулировать репозиториями других разработчиков. Если вы принудительно надавите на удаленную ветвь, которую уже вытащил еще один разработчик, их ветка будет не синхронизирована с пультом дистанционного управления, и ее может быть сложно восстановить.

Однако, в этом случае вы только толкая в хранилище. Вы никогда не потеряете фиксации, потому что восходящий поток никогда не будет опережать какую-либо конкретную ветвь. Кроме того, он не вытягивается другими разработчиками. По этим причинам в этом случае вполне можно заставить толкнуть.

+0

ОК, это именно то, чего я ожидал, но я столкнулся с проблемой, связанной с совместными репозиториями, поэтому хотел получить подтверждение. – Meltemi

+0

Да, обычно это очень плохая идея. Я добавил лучшее объяснение моему ответу. –

Смежные вопросы