У нас есть 2 разработчика, использующих EGit. Один работает на Windows, один работает на Linux
И мы установили политику сотрудничества следующим образом:
- Есть центральное (голое) хранилище
- Первоначально каждый разработчик проверяет данные из центрального хранилища и работает локально.
- Когда двум нужно синхронизировать работу, мы извлекаем / толкаем из / в центральный репозиторий.
Мы используем центральный репозиторий, как мы думаем, с его помощью мы можем легко сотрудничать с большим количеством разработчиков в команде в будущем.
Все работает нормально, пока мы не обнаружим, что вообще нет конфликта, когда один разработчик изменил файл, который был перемещен другим каталогом. Вот шаги:
- Один разработчик, переместить файл в другое место; передать его в свой локальный репозиторий; вставьте его в центральное хранилище.
- Другой изменяет содержимое этого (того же) файла; передать его в свой локальный репозиторий. Потяните за центральное хранилище.
Мы ожидаем, что будет отчет о конфликте, когда второй разработчик сделает "тягу". Но нет конфликта. И в его рабочем каталоге (и в его локальном хранилище) появилось 2 файла:
- Тот, который он модифицировал
- А тот, который первый разработчик переместил в другой каталог.
Может кто-нибудь сказать нам, в чем наша ошибка?
Является ли наш способ работы нарушает дизайн Git?
Мы новички в git (давно знакомы с CVCS). При рассмотрении этого вопроса мы очень беспокоимся, так как это означает, что будет очень трудно объединить работу нашей команды. Мы считаем, что должны что-то делать неправильно. Спасибо, что разъяснили нам.