Как легко справиться с ситуацией, когда ваш пул-реквест на Github объединен с rebase?

Работая над Github, я часто попадаю в ситуацию, когда человек, объединяющий мой запрос на перенос, объединяется с ребазом. Благодаря этому теперь мой репозиторий фактически застрял как «вилка». Вот изображение, показывающее график того, как дерево выглядит после перебазирования:

Как легко справиться с ситуацией, когда ваш пул-реквест на Github объединен с rebase?

Проблема в том, что теперь мои origin\master и origin\HEAD находятся вне пути source_repository\master. Что я делал до сих пор:

  1. Удалите мой репозиторий и просто снова форк от source_repository. Затем я клонирую этот новый репозиторий локально, и все в порядке
  2. Я могу заменить свой origin\HEAD на другую ветку, которая находится на пути перебазирования. Затем удалите origin\master и воссоздайте его, чтобы указать новую ГОЛОВУ. Наконец, переключите origin\HEAD, чтобы он указывал на новый origin\master.

Оба эти варианта кажутся слишком сложными, и кажется, что должен быть способ попроще. Что это?

Если вы перебазируете локально, вы, вероятно, обнаружите, что git автоматически увидит, что «My pull req» на master и origin/master одинаковы, и оставит вам только один экземпляр фиксации.

Mort 01.05.2018 22:09

@Mort, да, вы правы ... моя локальная перебазировка работает. Но проблема возникнет, когда я попробую git push в origin. Это не говорит о том, что мне сначала нужно вытащить изменения ... но это приводит к слиянию. По сути, мне нужна была возможность выполнить git push --force после локального ребазирования.

nikib3ro 01.05.2018 23:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
30
1

Ответы 1

Моя проблема заключалась в том, что инструмент, который я использую (SourceTree), по умолчанию не раскрывает git push --force. Похоже, они хотели «защитить пользователей от самих себя», как видно из этого обращения в службу поддержки: https://community.atlassian.com/t5/Sourcetree-questions/How-do-I-perform-a-formed-push-push-f-from-SourceTree/qaq-p/257351

К счастью, эта опция теперь реализована, только вам нужно включить ее, перейдя в Tools -> Options -> Git -> Enable Force Push.

После того, как у вас есть эта опция, вы можете rebase ваш локальный мастер, а затем push --force, чтобы получить ваш origin\master по новому пути.

Другие вопросы по теме