Есть множество вопросов о совместном использовании папки git clone между несколькими пользователями, но, похоже, все для Linux (две ссылки приведены ниже). У меня такая же проблема, но для машины с Windows. Я надеюсь, что другие сделали это и получили рекомендуемый процесс.
Была надежда, что, поскольку у каждого пользователя есть собственный логин, у каждого будут свои учетные данные в диспетчере учетных данных Windows и собственная папка .ssh для ключей. Этого было бы достаточно, если бы каждый пользователь клонировал свою собственную версию репозитория для выполнения работы.
Что, однако, произойдет, если пользователь A клонирует каталог и выходит из системы, затем пользователь B входит в систему и пытается выполнить извлечение (для извлечения / слияния новых коммитов с пульта дистанционного управления), внести некоторые изменения и отправить новое изменение в пульт? Я бы хотел, чтобы это было успешным, с отдельной информацией о фиксации (информацией об авторе) для каждого пользователя.
Полезен ли --shared
в этом случае? Есть ли способ применить глобальную конфигурацию git (имя / адрес электронной почты, которые будут разными для каждого входа в систему) по сравнению с информацией пользователя A (из исходного клона git в .git / config)? Это вообще возможно?
[править]
Добавление подробностей о сценарии использования. Об этом просили в комментариях.
У меня есть процесс сборки, который я довольно много автоматизировал с помощью скриптов. Для этого требуется правильно настроенный компьютер (несколько компиляторов, патчей и т. Д.) И несколько сторонних компонентов. Сборка включает в себя клонирование ~ 50 различных репозиториев, создание файлов make, make, make install (в определенном порядке в репозиториях), а затем выполнение дополнительных шагов упаковки / сборки. Это занимает часы, умноженные на несколько конфигураций сборки для чистой сборки. Чтобы ускорить процесс, сценарии будут генерировать эвристику, которая определяет, нужно ли выполнять шаги в цепочке (т. Е. Make может определить, нужно ли его запускать повторно, но это не помогает с make install
или последующими шагами). Конечный результат - установщик. У нас есть полные перестройки с интервалом ~ 6 месяцев для новых версий (где мы можем обновлять конфигурацию (компилятор и т. Д.)), И у нас есть второстепенные выпуски, которые включают обновление и / или настройку подмножества репозиториев (push и pull). Сценарии также могут нуждаться в модификации, они находятся в собственном репозитории git.
Хотя сценарий делает задачу чем-то, что я могу выполнить, не занимая слишком много полосы пропускания, я хотел бы позволить нескольким другим членам команды выполнить эти шаги. В этом заключается дилемма. «Простое» решение - иметь общую учетную запись, но это на самом деле усложняет работу с git (ключи ssh, токены github) и имеет много других недостатков. Было бы «лучше» хранить несколько экземпляров этой среды, по одному для каждого разработчика, но это создает новую проблему синхронизации машинной среды. Это также означает, что один разработчик не может «помочь» другим, запустив для них длительные процессы (они должны запускаться каждой отдельной учетной записью / машиной). Лучшим компромиссом казалось разрешение нескольким разработчикам использовать разные учетные записи, но работать на одном компьютере и в рамках одной и той же структуры папок.
По сути, настоящая проблема - это среда сборки. Хотя есть способы решить эту проблему (шеф-повар, репозитории артефактов и т. Д. И т. Д.), Ручная настройка среды сборки и совместное использование репозиториев git («исключительное» использование git) казалось разумным в этом случае, если это возможно. Таким образом, вопрос.
[/ edit]
--shared
- официально поддерживаемая часть инструмента, не так ли? Это подразумевает некоторый уровень признания моих потребностей, по крайней мере, для меня. - person Brett Stottlemyer   schedule 20.04.2018