у меня есть два локальных отделения ведущее устройство
и разработчик
. Обе ветви содержали три папки:
projectBeta
project
project_v1
Я хотел просто оставаться projectBeta
и удалить проект
и project_v1
и затем переименовать projectBeta
как проект
. Таким образом, это - то, что я сделал отдельно на обеих ветках, фиксируя, когда я продвинулся. Весь выглядел хорошим, пока я не пытался затем объединиться разработчик
ветвь ведущему устройству, и я получил груду этих видов ошибок:
CONFLICT (rename/delete): Rename projectBeta/test.c->project/test.c in dev and deleted in HEAD
CONFLICT (rename/delete): Rename project_v1/test.c->project/test.c in HEAD and deleted in dev
, Таким образом, это похоже, Мерзавец отследил переименовывание по-разному в различных ветвях.
, Если я делаю состояние мерзавца
, я добираюсь
# On branch master
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# added by us: project/test.c
#
no changes added to commit (use "git add" and/or "git commit -a")
Первая вещь, которую я не понимаю, то, почему состояние просто говорит, что это - "добавленный нами", когда в сообщении о слиянии говорится, что это переименовано и удалено и нами и ими?
, Во-вторых, я хочу использовать ветвь разработчика, присваивают версию (их) test.c, но теперь когда я пробую
git co --theirs project/test.c
, я добираюсь
error: path 'project/test.c' does not have their version
..., таким образом, я не знаю, как удостовериться, что слияние будет использовать содержание от ветви разработчика?
Наконец, там лучшая практика способ избежать такой путаницы как это в будущем? В основном, изменяя структуры папок независимо в ветвях, где содержание не готово объединиться сначала...