2012-07-24 9 views
60

In che modo un team di quattro persone utilizza Git (in particolare Github for Windows) per trasferire le modifiche locali su un'unità di rete condivisa?Cambia modifiche git su un'unità di rete condivisa

Al momento (senza Git) dobbiamo copiare i file dall'unità di rete sulla nostra macchina locale, modificare i file e quindi ricaricarli nell'unità di rete condivisa. Questo è un processo meticoloso che può portare a molti errori, ma sembra che Git ci possa aiutare.

È sufficiente installare Git sull'unità condivisa e passare da lì?

risposta

20

La nostra squadra attualmente fa esattamente questo. Ogni sviluppatore ha il seguente:

  1. Git installato sulla propria macchina locale
  2. accesso alla propria unità condivisa personale (L:)
  3. accesso a un'unità di gruppo condiviso (V:)

Noi avere il repository "remoto" (impostato utilizzando init -bare) sull'unità V: e tutti hanno un clone sull'unità personale L:. Tutte le modifiche vengono apportate all'unità L: e inviate all'unità V:, che vengono poi scaricate in seguito dagli altri sviluppatori nei rispettivi repository personali sulle loro unità L:. Funziona senza problemi e attenua la necessità di un server Git.

+0

Ok, fantastico! Devo prima creare un repository locale e quindi configurare un telecomando del repository sull'unità condivisa? – user1549303

+1

@ user1549303 - Ecco come lo facciamo. Puoi creare il repo locale (il nostro repo di unità 'L:') usando 'git init', e quindi creare il telecomando (il nostro' v: 'guidi uno) usando' git clone --bare' (o un 'git init - -bare', e poi una spinta da 'L:'). – eykanal

+0

@eykanal - Il mio team utilizza attualmente una libreria di controllo del codice sorgente antica e orribile e stiamo cercando di passare a git. Una cosa che la nostra attuale libreria mi consente di fare è vedere chi ha estratto un file ma ha dimenticato di controllare le modifiche. Con git, tutti i repository sono locali, quindi come fai a sapere se qualcuno ha dimenticato di passare a "v:"? –

1

È possibile aggiungere un altro che punta a distanza per l'unità di rete (git remote)

Poi si può spingere tirare simile a quello che fai con github

78

Non sono sicuro se hai trovato qualcosa che funziona per voi o no, ma io avere un interessante resoconto su come fare quella cosa molto su un'unità di rete di Windows:

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

da un cambiamento richiamo del cmd per l'unità mappata.

$ cd g:

Quindi inserire cd nel repository di git.

$ cd scripts

Quindi creare un repository git vuoto. Se non si utilizza l'opzione --bare, si avranno problemi quindi non lasciarlo fuori.

$ git init --bare

Ora, se non si dispone di un repository git locale ancora, allora è possibile clonare il vostro nuovo repository dove volete navigando di nuovo al vostro disco locale.

$ c:

$ cd work/scripts

$ git clone file://g:\scripts

Quando si duplica, si ottiene automaticamente un nome a distanza "origine" e si può spingere al server per mantenere sicuro ogni volta che si apportano modifiche a livello locale.

$ git push origin master

Se si dispone già di un repository git e si desidera solo per spingere fuori per l'unità condivisa, allora si può fare questo dal tuo dir git locale.

$ git remote add origin file://g:\scripts

$ git push origin master

+0

Grazie - Ho fatto esattamente questo per un progetto personale sulla mia rete domestica. –

+0

Ho seguito questi passaggi, ma ottengo i seguenti errori quando eseguo git push master di origine errore: Impossibile generare sh: Nessun file o directory fatale: impossibile dare un fork – NickStees

+0

Grazie. Ci è voluto molto tempo per trovare questa risposta –