#git #github
Вопрос:
Пожалуйста, извините за мои познания в Git, так как я новичок в мире GitHub. У меня есть 4 ветви, а именно master, release, develop and staging.
На данный момент все ветви синхронизированы, и я внес некоторые изменения в код и оттолкнулся от staging -gt; develop
Теперь я понимаю, что мне нужно отменить эти изменения, и они должны быть такими же, как release
в ветке. Я не уверен, как это сделать, потому что, когда я пытаюсь сделать это со страницы GitHub, там написано «Сравнивать не с чем», в то время как я вижу разницу в файлах.
Не мог бы кто-нибудь, пожалуйста, помочь, как синхронизировать staging
ветку и develop
с выпуском.
Комментарии:
1. «На данный момент все ветви синхронизированы» — что вы имеете в виду под этим? Все ли ветви указывают на одну и ту же фиксацию?
2. Да.. они указывают на один и тот же коммит
3. Было бы полезно, если бы вы объяснили назначение каждой из ветвей. Если вы намерены всегда синхронизировать их, вам понадобится только 1 ветвь вместо 4. Способ синхронизации ветвей также зависит от назначения ветвей. Например, в Git-потоке
release
создаетсяdevelop
, а затем объединяетсяmaster
и также объединяется обратноdevelop
. В этот моментrelease
иmaster
синхронизируются (иrelease
обычно удаляются в этот момент), ноdevelop
,master
скорее всего, никогда не синхронизируются. В Gitworkflowsnext
ветвьmain
периодически синхронизируется с помощью reset .4. Я думаю, вы, возможно, захотите отредактировать: «На данный момент все ветви синхронизированы, и я сделал» до «В какой- то момент все ветви были синхронизированы, а затем я сделал». Также подумайте о том, чтобы изменить «Мне нужно отменить эти изменения» на «Мне нужно отменить эти изменения». Два разных способа «отменить»
revert
— это «иreset
«, и похоже, что вы действительно хотитеreset
этого, а неrevert
«. Что, кстати, вероятно, отвечает на ваш вопрос…
Ответ №1:
Ветви Git обычно не используются для настройки различных сред сборки. Основная цель ветви-разместить функциональность, над которой ведется работа, отдельно от основной ветви. В конечном итоге эта функциональность будет объединена в master, а ее исходная ветвь будет удалена. Таким образом, не имеет большого смысла «синхронизировать» каждую ветвь (что, я полагаю, означает, что они одинаковы). Если вы хотите разместить различные среды сборки и обновлять их по мере необходимости, вам нужно изучить что-то под названием DevOps. Это взаимосвязанная, но отдельная концепция, которую я настоятельно рекомендую вам изучить после ознакомления с основами Github.