что вызывает конфликты подмодулей в git и как их разрешать? - PullRequest
10 голосов
/ 15 июля 2011

Мы используем подмодули, и мы новички в git.

Мы часто видим конфликты слияния для самих подмодулей, файлы не конфликтуют, только подмодуль.В выводе git submodule summary указано несколько версий.Мы разрешим их, запустив git add <submodule> в суперпроекте.
Но сегодня у нас был разработчик, потерявший фиксацию подмодуля, когда она разрешила конфликт таким способом.
Выбирает ли запуск git add удаленную версию?Разве содержимое подмодуля не должно быть объединено?Если она внесла изменения в подмодуль и зафиксировала их (что я вижу), то почему эта фиксация исчезла после того, как она провела проверку и разрешила конфликт?

Ответы [ 2 ]

12 голосов
/ 19 мая 2014

Ваш локальный подмодуль и удаленный подмодуль разошлись.

git checkout --theirs submodulename

или для вашей версии:

git checkout --ours submodulename

, а затем передайте изменения с помощью git add и передайте изменения.

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

error: pathspec 'submodulename/' did not match any file(s) known to git.
10 голосов
/ 18 июля 2011

Оба файл конфликты и субмодуль конфликты происходят когда ваша текущая ветвь и ветвь вы хотите вы хотите вхождение разошлись .

Это просто означает, что существует неоднозначная ситуация - вы могли бы на законных основаниях хотеть либо"выиграть" в любом конкретном случае. Таким образом, хотя это может показаться «раздражающим», они просто выделяют ваши расширенные параметры, чтобы указать, что вы хотите (и вы должны указать, что вы хотите). (И все, что программисты делают каждый день, это просто для уточнения деталей.)

Похоже, проект git-add-the-submodule-on-the-superp должен работать. Тем не менее, у вас также была возможность сразу выполнить git-checkout-on-the-superproject. Это упомянуто в этой ссылке (разрешение конфликтов подмодулей), в которой говорится о разнице между конфликтами file и summodule и о том, как их разрешать:

http://pacific.mpi -cbg.de / вики / index.php / Git_Conflicts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...