Posso / devo mettere il mio repository Git su una macchina non-dev e mantenerlo sincronizzato con il server di controllo non versione?

2

Mi offro volontario per un sito web e, in pratica, non abbiamo il controllo della versione. Stiamo lavorando per cambiarlo, ma a causa di diverse cose, incluso il fatto che non ho mai lavorato con il controllo del codice sorgente, ciò non sta accadendo da un po 'di tempo.

Nel frattempo, mi piacerebbe spostare i miei file di lavoro nel controllo del codice sorgente (probabilmente Git) per gli ovvi benefici. Ecco la cosa: ci sono centinaia di migliaia di file sul server web che sono generati dall'utente che non voglio realmente sulla mia macchina di sviluppo perché, beh, io pago per le mie attrezzature (dopotutto è volontario, quindi è non è che posso spendere un nuovo disco rigido) e la mia macchina dev è anche il mio computer di tutti i giorni e preferirei non intasarlo con un sacco di cose che non devono essere qui.

Tuttavia, ho un sistema vuoto attorno che è perfettamente disposto a memorizzare tutti questi dati. Con ogni probabilità, quel sistema probabilmente ospiterà comunque un'intera copia locale del sito come backup. Quindi, e spero che questa non sia un'idea completamente pazza, sto pensando di mettere il repository Git su quella macchina. Tuttavia, non intendo svilupparmi su quella macchina.

  • Mettere la tua repository Git su un computer diverso da quello della tua macchina dev è una pessima idea? Dovrebbe essere tecnicamente fattibile poiché si trova sulla stessa rete, e non credo che il mio IDE abbia problemi a connettersi ad esso, ma ciò non significa che sia una pessima idea. Mettere il repository sulla mia macchina di sviluppo non è fuori questione, ma sarebbe preferibile metterlo su quello vuoto.

  • (E spero che questo sia abbastanza correlato da mantenere la stessa domanda) Perché ci sono altre persone che lavorano sul sito, le modifiche stanno per accadere al sito remoto che non passerà attraverso la fonte controllo. Dato che preferirei che i due rimanessero sincronizzati, potrei creare un repository Git sul server, estrarre e unire le modifiche nel mio locale e quindi caricare le modifiche tramite FTP? Al momento non è possibile eseguire alcun controllo della versione reale sul server (come ho già detto, è in corso di elaborazione), ma un repository che non tocchiamo è una questione diversa. Questo sarebbe un piano fattibile?

posta waiwai933 12.05.2012 - 06:10
fonte

1 risposta

3

Sì, è possibile come l'hai descritto, ma molto, molto scomodo e soggetto a errori. Se il repository è su un'altra macchina, è necessario copiare lo stato corrente (HEAD) sulla macchina di sviluppo per lavorare sui file, quindi copiarli nuovamente per commettere anche qualcosa. Ciò distrugge completamente una delle migliori caratteristiche di DVCS: commit locale economico e veloce. Inoltre, non si utilizza solo il controllo della versione come memoria di backup stupida: ha cronologia, sezioni in due, diramazioni, unione, ecc. Lo si desidera sulla punta delle dita, senza un giro di andata sull'altra macchina. Un'altra possibilità, se si utilizza il sistema operativo basato su * nix su entrambe le macchine è se si imposta una connessione SSH e si lavora su di essa. Non è terribilmente difficile, ma non è ancora ottimale.

Ora, penso che il tuo repository (meno i contenuti generati dall'utente) non sarà terribilmente grande nemmeno con tutta la cronologia (potrei sbagliarmi, ma a meno che tu non archivi e modifichi molti dati binari nel repository, git tende ad essere abbastanza compatto). Di solito, le persone non memorizzano contenuto nel repository, solo codice (beh, forse alcuni dati di test minori). Quindi quello che dovresti fare è scrivere un file .gitignore adatto che filtra le cose che non vuoi. I contenuti generati dagli utenti, specialmente se gli articoli non vengono solo aggiunti ma modificati nel tempo, non sono qualcosa che si desidera realizzare. È comunque possibile inserire un clone del repository su quell'altra macchina e persino sul server di produzione. In questo modo, la distribuzione delle modifiche sarebbe un git push .

    
risposta data 12.05.2012 - 08:50
fonte

Leggi altre domande sui tag