Git отказывается объединять несвязанные истории при ребазе

Ответ на этот вопрос должен быть в любом учебнике или документации по регулярному выражению Java, которые вы просматриваете. Да, есть один, это звездочка. *

a* // looks for 0 or more instances of "a"

Я просто googled «java regex repeat zero or more times», и первый хит отвечает на ваш вопрос, как, вероятно, 95% других хитов.

1719
задан Peter Mortensen 5 June 2019 в 11:27
поделиться

2 ответа

Это обычно происходит, когда Вы передаете в первый раз удаленному репозиторию. Поскольку ошибка ясно говорит "отказ объединить несвязанные истории", мы должны использовать - allow-unrelated-histories флаг.

git pull origin master  --allow-unrelated-histories

Теперь были бы некоторые конфликты, которые мы должны решить вручную. После того, как это просто фиксирует код и продвигает его.

2
ответ дан Santosh Kadam 4 October 2019 в 07:26
поделиться
  • 1
    @duffymo, я соглашаюсь, что ничто не никогда 100%-й сейф. У Вас есть пример Внедрения SQL, которое будет работать даже с параметризованным SQL? – Cylon Cat 28 November 2009 в 16:42

Я использую переоснову в течение многих лет, и я никогда не встречался с такой проблемой. Однако Ваша первая проблема, что Вы пытаетесь сделать это непосредственно на удаленном ответвлении development из удаленного репозитория, названного origin. Это буквально неправильно, потому что переосновой является опасная команда, что restructeres история мерзавца. Однако Вы должны он сначала примерять Ваш локальный репозиторий и продвижение его только, если это работает на Вас как ожидалось.

Так, мой обычный переосновной поток операций похож на следующее (но имейте в виду, что Вы не должны использовать переоснову на ответвлениях, которые Вы не единственный один комитет. Для таких ответвлений используйте просто слияние и конфликты твердости, если применимо):

  1. удостоверяются, что у Вас есть чистое рабочее дерево (не отменяют фиксацию изменений)
  2. контроль к ответвлению, на которое Вы хотите повторно базироваться (например, скажем, это master; как команда остроты): git checkout master && git pull origin master && git checkout development
  3. Делают переоснову acutal: git rebase master
  4. , Если это сделано и все работает как ожидалось, продвиньте его к своему удаленному. Для того, чтобы сделать так, необходимо вызвать его, потому что удаленный хост уже имеет историю в другом порядке, удаленное не ответило бы ничем для продвижения. Так, мы должны сказать, что "моя локальная версия истории корректна, перезапишите все на том удаленном ответвлении с помощью моей локальной версии истории": git push -f origin development

, Поскольку я уже упомянул, имейте в виду, та переоснова управляет историей мерзавца, которая обычно является плохой вещью. Однако возможно сделать это на ответвлениях, где никто больше не соглашается. Для хранения ответвления способным получением по запросу для других разработчиков, использование, которое любит другая стратегия слияния, объединяет себя, сквош или cherrypick. Так, другими словами: переоснова should'nt быть Вашим инструментом на распределенной разработке. Это хорошо работает для Вас, если Вы - единственный, кто работает над этим репозиторием.

Мы используем ответвление функции strategey. В этом я обычно использую переоснову для получения "обновлений" от других разработчиков, которые произошли тем временем на основном ответвлении. Делая так, это уменьшает размер фиксаций, которые видимы в запросе получения по запросу. Поэтому это помогает рецензенту кода видеть мои изменения, внесенные в этом ответвлении функции.

0
ответ дан 22 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: