git: avendo una cartella separata per lo sviluppo, perché?

2

fino ad ora stavo usando dropbox come mio vcs principale (non lo è, ma per un singolo dev il lavoro è abbastanza decente).

Comunque ho deciso di dare un giro e vedere se si adatta alle mie esigenze. Oggi stavo leggendo questo tutorial e ad un certo punto dice:

One of the things you should get used to is doing development in a separate area, not where you're serving your files from, for obvious reasons

Sto facendo sviluppo in django e non riesco a trovare queste "ovvie ragioni". Perché non posso semplicemente usare la cartella del mio progetto per pubblicare i file su github?

Sarei felice se qualcuno mi chiarisse questo per me ora che sono nuovo di git.

    
posta xpanta 04.02.2013 - 11:26
fonte

6 risposte

16

Sono l'autore del post sul blog in questione. Per chiarire, ciò che è stato inteso non è che non dovresti usare la stessa directory per "servire i file a GitHub", ma piuttosto non dovresti sviluppare nella stessa directory che il tuo server web serve i tuoi contenuti em>.

Spero che chiarisca le cose.

    
risposta data 04.02.2013 - 16:57
fonte
6

Questo in realtà non ha nulla a che fare con Git. In generale, è una cattiva idea modificare un sito web dal vivo mentre i tuoi utenti lo utilizzano. Devi assicurarti che le tue modifiche siano complete, quindi "vai in diretta".

    
risposta data 04.02.2013 - 16:36
fonte
2

Non dovresti esporre i tuoi file di controllo delle versioni sui server "pubblicati" dal momento che potrebbero essere raccolte informazioni private che potrebbero essere di aiuto in un attacco al tuo sistema.

    
risposta data 04.02.2013 - 14:39
fonte
1

Il consiglio di "svilupparsi in un'area separata" non è specifico per git. È molto popolare avere un ambiente di "sviluppo" separato dall'ambiente di "produzione". L'ambiente di produzione (da cui vengono serviti i file) è solo per il codice che è stato testato ed è completo e funzionante.

L'ambiente di sviluppo è il luogo in cui svolgi il lavoro vero e proprio. Qui, sei libero di rompere le cose, lasciare qualcosa di incompleto e andare a letto, provare una funzione e rimuoverla, prenditi il tuo tempo lavorando su un grande cambiamento, torna a una vecchia versione, fai solo quello che vuoi.

E mentre stai scherzando con la versione di sviluppo, rompendola e rimettendola insieme, tutto ciò che l'utente vede è la versione di produzione, che dovrebbe funzionare correttamente in ogni momento.

Il tutorial spiega come impostarlo rapidamente con git, ma git non è richiesto per utilizzare più ambienti e non sono richiesti più ambienti per usare git.

    
risposta data 04.02.2013 - 16:35
fonte
0

Penso che il significato sia che dovresti rilasciare solo versioni stabili e funzionanti, e non tutte le versioni intermedie (magari rotte) che ottieni quando lavori su una nuova funzione.

Quindi dovresti assicurarti che ogni volta che qualcuno accede al tuo sito web, dovrebbe funzionare abbastanza bene.

Ciò avviene mediante lo sviluppo in un repository git e la distribuzione di versioni funzionanti nella directory di produzione quando sei pronto a farlo.

Questo tutorial suggerisce di utilizzare fabric per tali distribuzioni. Non l'ho mai usato, ma è un framework di distribuzione ben noto e potrebbe essere una scelta sensata nella maggior parte dei casi.

    
risposta data 04.02.2013 - 14:34
fonte
-1

Potresti pensare di poter garantire che non ci siano errori nei codici, perché sono un programmatore eccellente e non commetto errori.
Ma la verità è che a volte fai degli errori.
Se si esegue il codice nella directory che serve i client, i client ottengono un servizio instabile, diciamo che un cliente modifica il proprio saldo in banca nel momento in cui si modifica un file py e si esegue un rientro errato. Di conseguenza, il client potrebbe ricevere un errore 500, che pagina urgente è.
Lo sviluppo in un'area separata ti garantisce inoltre un progetto eseguibile . Ha senso anche se fai lo sviluppo sotto un ramo dev invece di una nuova directory.

    
risposta data 04.02.2013 - 14:50
fonte

Leggi altre domande sui tag