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

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

git changes merged with git rebase

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

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

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

1 Ответ

0 голосов
/ 01 мая 2018

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

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

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

enter image description here

...