Как я разрешаю конфликт после получения по запросу мерзавца?

C++ действительно генерирует конструктора по умолчанию, но только если Вы не обеспечиваете одно собственное. В стандарте ничто не говорится об обнулении элементов данных. По умолчанию, когда Вы сначала создаете любой объект, они не определены.

Это могло бы сбивать с толку, потому что большинство типов примитивов C++ ДЕЙСТВИТЕЛЬНО имеет "конструкторов" по умолчанию, которых init их для обнуления (интервал (), bool (), дважды (), долго (), и т.д. ), но компилятор не называет их к init участникам POD как он, делает для элементов объекта.

стоит отметить, что STL делает использование эти конструкторы к конструкции по умолчанию содержание контейнеров, которые содержат типы примитивов. Можно смотреть на этот вопрос для получения дополнительной информации о том, как вещи в контейнерах STL получают inited.

52
задан Léo Léopold Hertz 준영 7 June 2012 в 14:41
поделиться

2 ответа

Для этого вам не понадобится mergetool. Его довольно легко разрешить вручную.

Ваш конфликт заключается в том, что ваши локальные коммиты добавили файл vision_problem_8.h , который также был создан удаленным коммитом, путем переименования из vignette_generator_mashed.h . Если вы запустите ls -l vision_problem_8.h * , вы, вероятно, увидите несколько версий этого файла, которые git сохранил для вас. Один из них будет вашим, другой - удаленной версией. Вы можете использовать редактор или любые другие инструменты, которые вам нравятся, чтобы разрешить конфликтующее содержимое. Когда вы закончите, git add затронутые файлы и зафиксируйте, чтобы завершить слияние.

Если вы просто хотите использовать версию удаленного коммита, вы можете просто переместить копию, которую вы не сделали » t записать на место и git add it.


Что касается инструментов слияния, посмотрите git help mergetool . По сути, он будет пытаться запустить каждую из включенных возможностей, пока не найдет ее, или использовать ту, которую вы явно настроили.

25
ответ дан 7 November 2019 в 09:36
поделиться

Если вы запустите слияние из подкаталога вашего проекта, git выполнит слияние для всего вашего проекта. Однако mergetool может видеть (и объединять) файлы только в рабочем каталоге или ниже него. Итак, если возникает этот сценарий, убедитесь, что вы пытаетесь запустить разрешение конфликта из каталога верхнего уровня в своем проекте.

5
ответ дан 7 November 2019 в 09:36
поделиться
Другие вопросы по тегам:

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