Как синхронизировать ветви в git

#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 скорее всего, никогда не синхронизируются. В Gitworkflows next ветвь main периодически синхронизируется с помощью reset .

4. Я думаю, вы, возможно, захотите отредактировать: «На данный момент все ветви синхронизированы, и я сделал» до «В какой- то момент все ветви были синхронизированы, а затем я сделал». Также подумайте о том, чтобы изменить «Мне нужно отменить эти изменения» на «Мне нужно отменить эти изменения». Два разных способа «отменить» revert — это «и reset «, и похоже, что вы действительно хотите reset этого, а не revert «. Что, кстати, вероятно, отвечает на ваш вопрос…

Ответ №1:

Ветви Git обычно не используются для настройки различных сред сборки. Основная цель ветви-разместить функциональность, над которой ведется работа, отдельно от основной ветви. В конечном итоге эта функциональность будет объединена в master, а ее исходная ветвь будет удалена. Таким образом, не имеет большого смысла «синхронизировать» каждую ветвь (что, я полагаю, означает, что они одинаковы). Если вы хотите разместить различные среды сборки и обновлять их по мере необходимости, вам нужно изучить что-то под названием DevOps. Это взаимосвязанная, но отдельная концепция, которую я настоятельно рекомендую вам изучить после ознакомления с основами Github.