Натисніть git зміни на спільний мережевий диск


90

Як команда з чотирьох людей може використовувати Git (зокрема Github для Windows ), щоб просувати локальні зміни на спільний мережевий диск?

Зараз (без Git) ми повинні скопіювати файли з мережевого диска на локальну машину, відредагувати файли, а потім повторно завантажити їх на спільний мережевий диск. Це кропіткий процес, який може призвести до безлічі помилок, але, схоже, щось Git може нам допомогти.

Чи можемо ми просто встановити Git на спільний диск і піти звідти?

Відповіді:


123

Не впевнений, що ви знайшли щось, що вам підходить чи ні, але я маю опис того, як це зробити на мережевому диску Windows:

http://tony.halcyonlane.com/blog/2011/09/22/Using-git-at-work-on-a-Windows-network-drive/

Від оперативної зміни cmd до відображеного диска.

$ cd g:

Потім компакт-диск у ваш скоро схований файл git.

$ cd скрипти

Потім створіть порожнє сховище git. Якщо ви не використовуєте параметр --bare, у вас будуть проблеми, тому не залишайте цього.

$ git init --bare

Тепер, якщо у вас ще немає локального сховища git, ви можете клонувати своє нове сховище, де завгодно, повернувшись назад на свій локальний диск.

$ c:

$ cd робота / сценарії

Файл клонування $ git: // g: \ scripts

Коли ви клонуєте, ви автоматично отримуєте пульт з назвою "origin", і ви можете перейти на сервер для безпечного зберігання в будь-який час, коли ви вносите зміни локально.

$ git push master master

Якщо у вас вже є сховище git, і ви просто хочете вийти на загальний диск, тоді ви можете зробити це з вашого локального каталогу git.

$ git віддалене додавання вихідного файлу: // g: \ scripts

$ git push master master


1
Дякую - я зробив саме це для особистого проекту в домашній мережі.
Мартін Снайдер

Я виконував ці дії, але отримую такі помилки, коли запускаю git push origin master error: не вдається породити sh: Немає такого файлу або каталогу фатально: неможливо розгалужити
NickStees

Дякую. Довго
шукав

Для тих, у кого немає спільного накопичувача, існує pushd (і popd) для створення віртуального тимчасового диска, до якого можна перейти ( див. Посилання )
LoJo,

Які проблеми у вас виникнуть, якщо ви не використовуєте --bare? У мене вже є непросте сховище на мережевому диску, і я хотів би використовувати його як віддалений.
Фракталі,

24

Наразі наша команда робить саме це. Кожен розробник має таке:

  1. Git встановлено на їх локальній машині
  2. Доступ до власного спільного спільного диска ( L:)
  3. Доступ до спільного групового диска ( V:)

У нас є "віддалене" сховище (створене за допомогою init -bare) на V:диску, і кожен має клон на своєму особистому L:диску. Усі зміни вносяться в L:накопичувач і підштовхуються до нього V:, а потім інші розробники витягують їх до відповідних персональних сховищ на своїх L:дисках. Це працює без проблем і пом'якшує потребу в сервері Git.


Гаразд, чудово! Чи потрібно спочатку створювати локальний репо, а потім налаштовувати віддалений репо на спільному диску?
user1549303

1
@ user1549303 - Ось як ми це робимо. Ви можете створити локальне репо (наш L:репо диска) за допомогою git init, а потім створити віддалений (наш v:дисковий) за допомогою git clone --bare(або a git init --bare, а потім натискання з L:).
ейканал

@eykanal - На даний момент моя команда використовує старовинну, жахливу бібліотеку управління джерелами, і ми хочемо перейти на git. Одна річ, яку нам дозволяє наша поточна бібліотека - це побачити, хто перевірив файл, але забув перевірити зміни. У git всі сховища локальні, так як ви можете знати, якщо хтось забув натиснути на "v:"?
Kevin Buchan

3
@KevinBuchan - Пропоную розмістити свій коментар як нове запитання.
eykanal

1
Але чи реагує Git, коли двоє розробників намагаються перейти до одного спільного сховища (скажімо, V :) одночасно? Чи виникали у вас проблеми з одночасними операціями push?
Jordi

2

Ви можете додати ще один пульт дистанційного керування, що вказує на ваш мережевий диск (git remote)

Тоді ви можете натиснути на тягу, подібну до того, що ви робите з github

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.