Я использовал rebase, чтобы «объединить» ветвь dev в мастер, который отлично работает. Теперь мастер содержит все, что угодно от ветви dev, чего я хочу. Однако теперь мне нужно подтолкнуть его к github, который продолжает давать мне конфликты. Как я могу нажать/синхронизировать с github и перезаписать все файлы там?Git rebase в master и push без конфликтов
ответ
Если вы перебазировались master
на вершине dev
, да, master
«содержит все от dev
ветви», но его история была переписана (отсюда git push --force
)
Правильная последовательность была бы:
первого воспроизведения
dev
на вершинеmaster
:git checkout dev git rebase master
Затем объединить
dev
кmaster
(быстрой перемотки вперед слияние)git checkout master git merge dev
В этом случае master
может быть выдвинут без «конфликтов» к его удаленной вверх по течению репо.
В любом случае, это окончательный проект, и моя группа могла бы честно относиться меньше (такие же географии для TA);) – Ortix92
хорошо, если вы знаете об этом других членов группы, и вы сделали вынужденный толчок, вам нужно будет сказать им для сброса их ветвей. иначе они не смогут подтолкнуть изменения. –
То, что я бы, вероятно, сделать, чтобы убедиться, что у меня точно все на мастера, как другие люди видят его и принести в моих изменений от Dev филиала:
Во-первых, убедитесь, что у вас есть ссылка на ГОЛОВЫ вашей ветви dev прежде, чем любой хозяин будет пересоздать или слить. мастер
сбрасывается, как это прямо сейчас
git checkout master
git reset --hard origin/master
играют изменения на разработчике, как если бы они были сделаны в верхней части главной ветви
git checkout dev
git rebase master
объединить эти изменения в мастер (он будет быть быстрой перемотки вперед слияние)
git checkout master
git merge dev
отправить на эти изменения
git push origin master
Если вы вынуждаете толчок, как другие полагают, что это, вероятно, хорошо, но если другие ссылки на эти объекты GIT, что вы перезаписали с перебазироваться, то они будут иметь конфликты, когда они извлечь из этого репо на GitHub (поэтому вам нужно будет сказать им, что вы сделали силовой толчок). Общее правило - никогда не переписывать историю, о которой знают другие люди. Поэтому, как только вы нажимаете на «общественный» пульт, лучше всего планировать не форсировать толчок.
- 1. git rebase upstream/master vs git pull --rebase upstream master
- 2. git rebase и remote push
- 3. Git Merge vs Rebase - Разрешение конфликтов
- 4. Почему «git push helloworld + master: master» вместо «git push helloworld»?
- 5. git push heroku master
- 6. Push новых коммитов после git rebase филиала
- 7. Как «git rebase master» в SVN?
- 8. Rebase делает push невозможным
- 9. git rebase не продолжается после устранения конфликтов
- 10. Git pull --rebase when push
- 11. git push и git push heroku master за один шаг
- 12. Разница между git push origin master и git push
- 13. Очистка истории git после pull/push и ветви без конфликтов
- 14. git rebase без использования ветви
- 15. Git rebase показывает без перемотки вперед
- 16. Альтернатива git rebase
- 17. Что означает git pull --rebase origin master?
- 18. git pull --rebase upstream & git push origin отвергает без перемотки вперед?
- 19. git rebase master на основе timestamp
- 20. git rebase master с дочерними ветвями
- 21. GIT rebase требует подтверждения изменений
- 22. git push heroku master issue
- 23. 'git push origin master' freezes
- 24. git push heroku master: error
- 25. git push heroku master - FAIL
- 26. Git push -u origin master
- 27. «git push origin master» freezes
- 28. Git Push Heroku Master - Неудачный?
- 29. git push heroku master error
- 30. Ошибка Heroku Git Push Master
Вы можете использовать '--force' для нажатия, но это деструктивная команда, и вы потеряете историю, существующую в github. Пожалуйста, убедитесь, что вы знаете, что он делает, и используйте его на свой страх и риск. –
ли вы переделали ветку dev поверх мастера или наоборот: 'git rebase master' или' git rebase dev', который определит, как вам нужно обновлять ваш пульт. –