A meno che tu non sia un negozio web di una sola persona con nessuna squadra con cui collaborare, hai sperimentato la frustrazione che accompagna il file sharing. Non importa quanto ci provi, quando più persone stanno lavorando su un singolo progetto senza un sistema di controllo della versione in atto le cose diventano caotiche .

Se lavori con gli sviluppatori sul buildout e sull'implementazione di siti Web, l'unione tra modelli front-end e funzionalità back-end può essere un buco nero spaventoso.

Problemi come sovrascritture, file persi e il fin troppo comune fenomeno di "elaborazione di una versione precedente" si verificano costantemente . E una volta che la funzionalità di back-end è stata inserita nei tuoi modelli, sei terrorizzato di toccarli per paura di rompere qualcosa che uno sviluppatore ha impiegato molto tempo per iniziare a lavorare.

Inoltre, anche se si dispone di un repository comune che tutti traggono vantaggio dalle probabilità, almeno un membro del proprio team ha dimenticato di prendere gli ultimi file e sta per saltare in aria le ultime novità.

In questo articolo, ti darò una rapida recensione di Git, un eccellente sistema di controllo della versione .

Controllo della versione: una spiegazione rapida e sporca

Controllo versione (noto anche come Revision Control o Source Control Management ) è un ottimo modo per risolvere il problema di condivisione dei file.

Il concetto di base è questo: esiste un repository principale per tutti i file di progetto . I membri del team controllano i file, apportano le modifiche e quindi li ricontrollano (o li impegnano ). Il VCS (Version Control System) rileva automaticamente chi ha cambiato i file, quando sono stati modificati, e cosa ne è stato di nuovo o di diverso.

Ti chiede anche di scrivere una piccola nota sul cambiamento in modo che tutti i partecipanti al progetto sappiano a colpo d'occhio cosa hai fatto e perché. Ogni file avrà quindi una cronologia di revisione in modo da poter facilmente tornare a una versione precedente di qualsiasi file se qualcosa va terribilmente male.

Un buon VCS ti consente anche di unire le modifiche allo stesso file . Se tu e un'altra persona lavorate localmente sullo stesso file nello stesso momento, quando reinserite questi file nel repository principale il sistema unirà entrambi i gruppi di modifiche per creare un file nuovo e completamente aggiornato. Se sorgono conflitti durante l'unione, li evidenzierà per te.

Probabilmente stai usando un VCS molto rozzo in questo momento per mantenere i tuoi file dritti. Se sei un designer, sembra qualcosa del genere:

dpcwqxg_312gvhkh4s6_b

Designer Version Control - FAIL

Funziona abbastanza bene per PSD e altri file binari di grandi dimensioni, che in realtà non si prestano a VCS. Ma c'è un modo molto migliore per farlo quando gestisci il codice sorgente per un sito web.

I vantaggi dell'utilizzo di un sistema di controllo versione includono:

  • I file non possono essere sovrascritti
  • C'è un repository comune che contiene tutti i file più recenti
  • Le persone possono lavorare sugli stessi file contemporaneamente senza conflitti
  • Ti consente di tornare a una versione precedente del file / progetto, se necessario
  • Rendi i tuoi sviluppatori molto felici

Anche se non lavori con una squadra, il controllo della versione può essere un vero toccasana . Il backup dei file è una delle cose più facili che puoi fare per evitare di perdere il lavoro o dover ricominciare da capo.

L'idea di un VCS sembra inizialmente scoraggiante, soprattutto perché la maggior parte della documentazione è scritta da e per gli sviluppatori . Ma una volta presa la decisione di incorporarla nel tuo flusso di lavoro, scoprirai che non è così difficile come sembra.

dpcwqxg_322grqgzjcz_b

Incontra Git

OK, ora puoi vedere perché un sistema di controllo delle versioni è un must per il tuo team web. Se fai un po 'googling vedrai che ci sono diverse opzioni là fuori tra cui SVN, Mercurial, CVS, Bazaar e Git. Ognuno di loro potrebbe essere una buona soluzione per le vostre esigenze e vi incoraggio a fare qualche ricerca prima di selezionare un VCS. In questo articolo mi concentrerò su Git , quello che uso quotidianamente. È una "stella nascente" che ha guadagnato popolarità grazie a una forte base di fan di Linux, GitHub e il Rails Comunità.

Git è un sistema di controllo della versione open source creato originariamente da Linus Torvalds per lo sviluppo del kernel di Linux. Linus è un ragazzo molto intelligente; quando decide di risolvere un problema, non si scherza. Uno dei grandi differenziatori di Git è che a differenza di SVN e CVS è un sistema di controllo della versione distribuito . Ciò significa che ogni utente ha una copia completa dei dati dell'archivio memorizzati localmente sul proprio computer. Cosa c'è di così bello in questo? Poche cose:

    • Tutto è locale , quindi puoi lavorare offline
    • Non c'è un singolo punto di errore . Non si basa su un server centrale che potrebbe bloccarsi e bruciarsi, portando con sé l'unico repository del progetto.
    • Poiché non è necessario comunicare costantemente con un server centrale, i processi vengono eseguiti molto più velocemente

      Git ha una curva di apprendimento leggermente più dura di SVN , ma ne vale la pena. Pensa solo a quanto saranno impressionati i tuoi amici sviluppatori quando dirai loro che stai usando la nuova hotness che è Git! In tutta serietà, non credo che la curva di apprendimento sia così ripida. All'inizio, SVN mi ha parimenti disorientato, e durante l'utilizzo mi sono imbattuto in più problemi quotidiani.

      Installare Git non è divertente e giochi. Sono stato fortunato ad avere uno sviluppatore esperto disposto ad aiutare, ma ci sono molte risorse online per aiutarti. Funzionerà su PC, Mac o Linux, sebbene l'installazione per Linux e OSX sia considerevolmente più semplice rispetto a Windows.

      Puoi scaricare l'ultima versione di Git Qui Una volta che hai i file, prova questo guida veloce per iniziare con il processo di installazione. Per gli utenti Windows, questo passo dopo passo guida visiva dovrebbe essere utile Utenti Mac, prova questa guida GitHub

      Iniziare

      Una volta installato Git, puoi creare il tuo repository . Per trasformare una cartella esistente in un repository Git, utilizzare i seguenti comandi nella finestra del terminale o del prompt dei comandi:

      cd path/to/projectgit initgit add .git commit

      Cosa stai dicendo Git to do è:

      • Inizializza questa directory
      • Aggiungi tutto in esso - tutti i file e le sottodirectory
      • Commettere o memorizzare , tutte le modifiche correnti nel repository

      Se odi la riga di comando puoi farlo anche usando la GUI di Git . Non è la cosa più carina che tu abbia mai visto, ma è lì se ne hai bisogno.

      Uno screenshot della GUI di Git

      Un esempio di Git Workflow

      Attualmente sto usando Git su un Mac per lavorare su un'applicazione web con più sviluppatori web. Abbiamo una versione "master" del codice su cui inseriamo i nostri file, e ognuno di noi esegue una copia locale localmente. In un dato giorno, il mio flusso di lavoro è simile a questo:

      dpcwqxg_323gnhgbwg3_b

      1. Accendi il terminale . Avvia il mio database mysql locale (quindi l'applicazione che stiamo costruendo può essere eseguita localmente sul mio computer).
      2. Usa il Terminale per controllare le ultime modifiche usando il comando "git pull" . Questo mi porta tutte le modifiche apportate da altri membri del team e controllato nel nostro repository principale.
      3. Apri il progetto in TextMate e apporta le mie modifiche.
      4. Applica modifiche e aggiungi i miei appunti . Questo li impegna solo a livello locale. Mi impegno spesso, probabilmente dieci o più volte al giorno. Questo mi aiuta a mantenermi in pista.
      5. Invia le mie modifiche al repository principale utilizzando "git push" . Ora gli altri membri del team possono controllare e vedere le mie modifiche. Dovresti farlo almeno una volta al giorno o dopo un'aggiunta importante.

      Tutte queste azioni possono essere fatte facilmente attraverso la finestra del terminale , ma io sono un tipo visivo di ragazza. Per quel motivo, io uso GitX , un guido Git per OSX , per fare i miei commit. Continuo a spingere e tirare il terminale, ma GitX mi rende facile organizzare i miei commit e avvolgere la mia mente su quello che sto facendo.

      Screenshot GitX
      Nella parte superiore, evidenzia quali modifiche sono state apportate ai file. In basso a sinistra è la tua lista di modifiche non modificate . Per eseguirne il commit, trascini uno o più file nell'area "Modifiche sistematiche" a destra, digita il tuo messaggio di commit e premi il pulsante Conferma.

      Se sfoglio la visualizzazione ad albero, posso vedere cosa è stato inviato al repository. Se i miei file non erano aggiornati con i file master, i tag verde e blu in alto non sarebbero sincronizzati. GitNub offre un'interfaccia simile allo stile Mac.

      Screenshot GitX
      C'è anche un grande Bundle TextMate a disposizione. Con esso, puoi spingere, tirare, commettere e altro senza mai lasciare TextMate. È estremamente efficiente.

      TextMate con Git Bundle installato

      Per saperne di più

      Git Cheat Sheet

      Git Cheat Sheet di Zack Rusin

      Sopra: Git Cheat Sheet di Zack Rusin

      Sono ancora un principiante di Git me stesso, quindi ho solo scalfito la superficie di ciò che si può fare con esso, ma ho sicuramente visto la luce quando si tratta di controllo di versione, e sono felice di aver finalmente ottenuto carrozzone.

      Per ulteriori informazioni sull'utilizzo di Git, consulta queste fantastiche risorse:

      Introduzione a Git

      Conoscere Git
      Voce di Wikipedia su Git
      Perché Git è meglio di X
      Il TED talk di Linus Torvald su Git
      A Tour of Git: The Basics
      Git Ready

      Cheat Sheets / Tips

      37 Segnali Git Resources
      Git For The Lazy
      The Git User Manual
      Un Gaggle of Git Tips
      GitHub's Git Cheat Sheet
      Git Magic

      Introduzione al controllo della versione

      Controllo della versione per i progettisti
      Una guida visiva al controllo della versione
      Voce di Wikipedia su Revision Control
      Scelta di un sistema di controllo della versione distribuito
      Mi chiedo cosa faccia questo pulsante (un elenco a parte)


      Scritto esclusivamente per WDD da Mindy Wagner. È web designer presso Viget Labs e ha lavorato sia in stampa che in web design per oltre 8 anni. Ha una laurea in Arte e comunicazione multimediale elettronica presso il Rensselaer Polytechnic Institute.

      Usi Git o altri software per il controllo della versione? per favore condividi le tue esperienze con noi!