Я работаю над проектом git с несколькими людьми, и мы включили внешнюю библиотеку в качестве подмодуля git. У нас есть общий пульт дистанционного управления, от которого мы регулярно нажимаем и тянем.Обновление подмодуля Git перезаписано
Поскольку мы впервые добавили этот подмодуль, в нем произошли некоторые изменения, поэтому я сделал git submodule update --remote
, чтобы обновить его до последней версии. Это сработало для меня, и я нажал это на наш общий пульт. Файл на месте субмодуля, где ссылка на коммите хранятся, изменились:
-Subproject commit <old-commit-hash>
+Subproject commit <new-commit-hash>
Когда мои коллеги потянув изменения из нашего общего пульта дистанционного управления, они также получают измененный подмодуль, однако это, как представляется, отличается от изменения обычного файла, так как он не перезаписывает старую версию (что я бы ожидать), но это выглядит как изменение, когда они бегут git status
:
Changes not staged for commit:
modified: src/submodule (new commits)
так файл под изменен (к новому что я нажал), но почему-то git считает, что локальная версия моего коллеги новее. Тем не менее, это на самом деле старый, указывая на предыдущую ревизию, которую по-прежнему имеют мои коллеги.
Теперь, мне нравятся мои коллеги, но иногда они не очень обращают внимание и все они делают это git add .
или git commit -a
, который включает в себя все изменения и конечно перезаписывает изменения в субмодуля с ссылкой на старом субмодуля совершить.
Есть ли способ обеспечить обновление этого подмодуля для всех людей, которые тянут с этого пульта? Можно ли обрабатывать этот файл подмодуля как обычный файл, который обычно обновляется нормально? Или мне нужно сказать моим коллегам, чтобы они обращали больше внимания и время от времени делали git submodule update
10?
Надеюсь, мой вопрос ясен. Если нет, спросите, и я попробую уточнить.
В ответах на этот похожий вопрос есть несколько полезных советов: http://stackoverflow.com/questions/10443627/force-git-submodule-to-always-stay-current – TruncatedCoDr
Спасибо за ссылку. Я уже рассмотрел этот вопрос, но на самом деле не смог найти решение проблемы. Обратите внимание, что я не хочу автоматически проверять подмодули HEAD, но вместо этого хочу вручную направить обновление подмодуля на удаленный доступ, который другие могут потянуть. У вас есть более конкретный намек для меня? – dd23