Может ли кто-нибудь дать четкий и простой способ поменять местами имена в 2 ветках с помощью Git, используя Github в качестве удаленного репозитория?
Вот сценарий:
- Я создал ветку dev от мастера.
- После 1 коммита на dev я создал ветку exp (эксперимент).
- Я снова проверил dev и сделал еще 2 коммита.
- Затем я понял, что действительно хочу, чтобы exp была веткой, которая сделала эти 2 коммита, поэтому я хотел бы поменять местами exp и dev.
Я довольно новичок в этом, и я прошел некоторые из визуальных руководств по Git и искал этот сайт и Google, но мне все еще не ясно, как лучше или предполагаемый способ исправить это в Git (и особенно - с Github удаленное репо)
Мои плохие попытки исправить это:
Я пробовал несколько вещей и все испортил - переименовал локальные ветки с помощью Git Extensions, но не смог заставить удаленный репозиторий Github отразить это изменение. Я пытался создавать новые ветки, но не всегда могу заставить их отражаться как локально, так и удаленно (независимо от того, где я их делаю).
Наконец-то я смог получить все, что мне было нужно, с помощью основной функции Git Extensions pull с «Prune remote branch», которая, по-видимому, использует fetch с --prune — это отражало удаленные удаления обратно на локальные, а также функцию push с включенными некоторыми параметрами принудительного/удаления.
Сначала я подумал, что могу просто сбросить/переместить обе ветки (т. е. переместить exp до dev, а затем сбросить exp обратно до фиксации, на которой находился dev (2 назад), но при попытке сбросить в Git Extensions он спрашивает мне выбрать мягкий, смешанный или полный сброс - это заставило меня остановиться и пойти другим путем, пытаясь переименовать / создать новые ветки и т. д. Возможно, это был правильный путь - если да, должен ли я сделать мягкий или жесткий reset - или это не имеет значения после внесения каких-либо открытых изменений?Я много искал по этому поводу, и даже понимая рабочий каталог, индекс и ветку, в моем случае это все еще не было ясно.
Вопрос
Должны быть лучшие способы сделать это — как я могу легко поменять местами две ветки (или переименовать 2 ветки, чтобы они эффективно менялись местами), чтобы все изменения отражались как локально, так и удаленно (на Github)? сильный>
Я был бы признателен за любое понимание того, почему ваш метод является правильным или самым простым способом. Спасибо!
Примечание. Я нашел этот вопрос о переименовании мастера (или любого ветка) - но там очень много шагов. Я мог бы сделать это дважды, но мне трудно поверить, что это лучший способ сделать это.