Вы можете создать клон «от голого к голому» из репозитория с длинным UNC-путем к USB-накопителю с помощью
cd /e/src
git clone --bare //server/path/to/your/network/repo.git
, но я сомневаюсь, что вам это очень понравится, если вы сделаете это за один шаг.
Учитывая, что вы будете работать в своем локальном активном репо, я бы создал голое репо на USB-накопителе
cd git init --bare /e/src/myproject.git
создаю удаленное в вашем локальном активном репо
git remote add usb file:///e/src/myproject.git
, а затем нажмите на него при необходимости.
git push usb philip/cool-new-feature
Приведенные выше команды предполагают, что ваша флешка USB - это E: и ваш рабочий каталог находится в вашем локальном активном репо.
Насколько я понимаю ваш вопрос, у вас есть как минимум два несвязанных набора соавторов, в зависимости от того, имеют ли другие ваши соавторы общий центральный репозиторий или все они работают на изолированных машинах.Это означает, что репозиторий на вашем USB-накопителе - это репозиторий, к которому все (в конечном итоге) имеют доступ, поэтому ваши товарищи по команде проводят большую часть своего времени «в самолете» по отношению к нему.
Предложения по проектированию процесса разработки:
- Избегайте ситуаций, когда вы или кто-то другой становитесь назначенным слиянием.Вместо этого вы хотите, чтобы все члены команды интегрировались как можно чаще, чтобы сохранить потенциал конфликтующих изменений небольшим и управляемым.
- Наличие разрозненных соавторов повышает риск того, что кто-то нарушит функцию, от которой зависит кто-то другой, либочерез казалось бы безобидные изменения или неправильно разрешающие конфликты слияния.У вас должен быть быстрый метод, позволяющий одним нажатием кнопки определить, проникли ли в ваш код какие-либо регрессии или новые ошибки.
- Каждая группа соавторов, , то есть , те, кто имеет более частый доступ крепозитории друг друга или общий репозиторий, чем на USB-накопитель, должны практиковать непрерывную интеграцию между собой.Когда будут доступны новые коммиты с USB-накопителя, интеграция того, что у них есть, с новым кодом от остальной части команды должна стать наивысшим приоритетом.
Один из способов сделать это - заставить всех поддерживать чистотуосваивать и вносить изменения только в другие филиалы.Физическое владение USB-накопителем является естественным токеном интеграции, поэтому, когда он есть у данного соавтора, последовательность выглядит следующим образом:
git checkout master
git pull usb master # should always be a fast-forward
git merge feature1
make test # or whatever, and repeat until no breakage
git commit
git push usb master
git push shared master # if appropriate
git merge feature2 # if necessary
...