Gestisci il tuo file Versioning come un programmatore con Git

Gestisci il tuo file Versioning come un programmatore con Git / Programmazione

Se hai mai lavorato con i colleghi su un documento, conosci questo dolore: qualcuno fa il primo passaggio (document.doc), quindi lo invia per email a tutti. La persona successiva fa lo stesso, così come la terza, ciascuna che affronta una revisione (document_rev3.doc) al nome del file. Il manager apprezza ciò che vede e lo contrassegna come completo (document_final.doc) ... fino a quando i cambiamenti dell'ultimo minuto arrivano (document_final_Aaron's changes_reviewed_by_Bob_now_really_final.doc).

Ora immagina cambiamenti come questo in dozzine di file di codice sorgente. I programmatori hanno creato i sistemi di controllo della versione (VCS) per risolvere questo problema. Sono di natura un po 'tecnica, ma possono essere utili anche per gli utenti esperti. Diamo un'occhiata alle nozioni di base sul controllo della versione usando il sistema principale oggi, Idiota.

Panoramica sul controllo della versione in uso

Lo scopo principale dei VCS è quello di catturare versioni (chiamato anche revisioni) di un file nel tempo. Ciò significa non affidarsi a metodi grezzi come quello descritto sopra. In questi sistemi, quando si accede “document.doc” stai lavorando sulla versione più recente per impostazione predefinita. Ma puoi anche tornare alla cronologia del file e recuperare le versioni precedenti. I sistemi creati appositamente per gestire le versioni dei file sono iniziati nello sviluppo del software, ma sono stati introdotti di più “corrente principale” applicazioni pure.

L'evoluzione del controllo della versione nello sviluppo di software

Le applicazioni per il controllo della versione originariamente rappresentavano un modo per impedire ai programmatori di violare il codice degli altri. I primi sistemi consentivano semplicemente agli utenti di bloccare i file da altre modifiche, mentre i sistemi di seconda generazione (come Subversion Come controllare le versioni di WordPress usando Subversion [Linux] Come controllare le versioni di WordPress usando Subversion [Linux] Molti di voi probabilmente già sanno che WordPress alimenta una grande quantità di siti Web che guardiamo ogni giorno.Grazie alla grande base di utenti e al supporto, puoi fare un sacco di cose interessanti con ... Leggi di più) aggiunto il checkout del progetto completo da un repository centrale.

Mentre questi sistemi di seconda generazione sono ancora ampiamente utilizzati, l'industria sta migrando verso sistemi di terza generazione. La caratteristica principale di questi sistemi è che sono distribuito, il che significa che non esiste un repository centrale. Piuttosto, ogni utente ha la propria copia completa del repository (incluse tutte le revisioni precedenti). Ma tutte le modifiche (anche le revisioni complete) lo sono “Locale” fino a che lui “spinge” loro in un altro repository. Quell'utente può quindi estrarre un clone per apportare modifiche e ripetere il processo.

Controllo versione corrente per non programmatori

La possibilità di acquisire più versioni della stessa cosa è anche una caratteristica comune anche per gli utenti medi Non solo per i codificatori: sistemi di controllo versione per scrittori e non solo per i codificatori: sistemi di controllo versione superiore per scrittori La menzione del controllo di versione o del controllo di revisione rende sembra qualcosa per i fanatici. Sarai sorpreso di sapere che i sistemi di controllo delle versioni hanno il loro posto non solo nella scrittura accademica, ma in ... Per saperne di più. Con l'accesso a uno spazio di archiviazione più economico, sia sul computer locale che tramite servizi cloud di facile utilizzo, gli utenti ora hanno la possibilità di tracciare la cronologia dei loro file. I programmi per uso generale lo fanno in vari modi.

Sistemi operativi può acquisire una cronologia di file o cartelle La guida di backup dei dati di Windows 10 definitiva La guida di backup dei dati di Windows 10 completa Abbiamo riepilogato ogni opzione di backup, ripristino, ripristino e riparazione che abbiamo trovato su Windows 10. Utilizza i nostri semplici consigli e non disperare mai sopra i dati persi di nuovo! Leggi di più . Questo può accadere automaticamente ogni volta che un file viene salvato o su una pianificazione regolare. Alcuni applicazioni desktop consente anche di acquisire versioni o istantanee di file. Ad esempio, LibreOffice fornisce il “Salva versione” funzionalità (come mostrato nell'immagine in alto) che consente di salvare più versioni del documento in un unico file. Infine, le applicazioni web / cloud come Google Drive, ownCloud, ecc. Manterranno anche le iterazioni di un file o di un documento (come mostrato per Google Documenti nell'immagine in basso qui sotto), dietro le quinte o al comando espresso.

Perché utilizzare il controllo della versione in base alla programmazione Quindi?

Poiché esistono già tutte queste opzioni a livello di sistema operativo o di applicazione, perché preoccuparsi di questi strumenti per programmatori nerd? Ci sono un paio di inconvenienti ai metodi di cui sopra, tra cui:

  • Alcuni sistemi operativi salveranno ogni modifica apportata a un file in una nuova versione Turn Back Time: 4 Strumenti e suggerimenti per ripristinare i file eliminati in Windows Torna indietro: 4 Strumenti e suggerimenti per ripristinare i file cancellati in Windows Uno di Windows ' i maggiori difetti potrebbero essere il tuo salvataggio, se dovessi cancellare accidentalmente un file importante: il file system di Windows in realtà non elimina i file. Fino a quando non vengono sovrascritti, i file cancellati possono essere ripristinati. Leggi di più . Questo non solo occuperà memoria non necessaria, ma renderà anche difficile identificare un particolare punto di ripristino per un file.
  • Queste soluzioni possono anche utilizzare un file come unità di base da gestire. Ma i sistemi di controllo delle versioni di solito funzionano a livello di directory (comprese le sottodirectory). Un VCS rende facile vedere con precisione quale file è cambiato e quando.
  • Queste stesse soluzioni non ti danno la possibilità di etichettare le iterazioni nella maggior parte dei casi. Allo stesso modo rende difficile trovare il file con il passaggio del testo che hai sovrascritto a un certo punto prima di rendersi conto di quanto fosse brillante.
  • Il controllo delle versioni da parte dei sistemi operativi e delle applicazioni come Word introduce anche singoli punti di errore. Per Word è il file stesso (se viene corrotto, saluta anche tutte le tue copie passate). Per il sistema operativo è il disco rigido Come diagnosticare e risolvere un disco rigido guasto per recuperare i dati Come diagnosticare e risolvere un disco rigido guasto per recuperare i dati Diversi anni fa, ho riscontrato un guasto del disco rigido. Ero al lavoro quando il mio portatile ha iniziato a comportarsi in modo strano. Circa mezz'ora più tardi, il disco rigido non funzionava correttamente e il laptop ... Leggi altro, a meno che tu non sia un utente responsabile e esegui regolarmente il backup. Guida di backup e ripristino di Windows Guida di backup e ripristino di Windows I disastri avvengono. A meno che tu non voglia perdere i tuoi dati, hai bisogno di una buona routine di backup di Windows. Ti mostreremo come preparare i backup e ripristinarli. Leggi di più .
  • La natura dei servizi basati sul web significa che le tue revisioni precedenti potrebbero essere disponibili nel cloud. Ad esempio, se provi a visualizzare la cronologia di un file Dropbox su Linux (come mostrato nell'immagine seguente), verrai reindirizzato al sito web.

Se uno o tutti questi problemi ti fanno desiderare qualcosa in più, dai un'occhiata alla prossima sezione in cui li risolviamo Idiota.

Controllo della versione con Git

Nelle sezioni seguenti analizzeremo ciascuno di questi passaggi per un progetto molto importante: questo stesso articolo. Lo faremo usando la versione da riga di comando di Git. Conoscere i comandi del terminale renderà abbastanza facile trovare i loro equivalenti GUI, e ti garantirà che puoi usarlo su ogni piattaforma.

1. Impostazione del repository Git

Se la tua macchina non ha git installato (come i Mac, come alcune distribuzioni Linux), puoi prendere il programma di installazione di Windows dalla pagina di download del progetto o installare su Linux con un comando (specifico per la tua distro) come:

sudo apt install git

La prossima cosa che dobbiamo fare è impostare un git deposito, che è solo una cartella contenente il tuo progetto. Per sfruttare il controllo delle versioni di Git, è necessario inizializzare la cartella come repository. Puoi farlo a una riga di comando con il seguente comando:

git init

Potresti non vedere nulla una volta completato, ma abilitare il “mostra file nascosti” opzione nel tuo file manager, e vedrai che c'è un nuovo .idiota cartella (come mostrato nell'immagine sopra). Questo è dove git mantiene tutte le sue informazioni quindi è fuori mano.

2. Aggiungi e conferma il tuo primo file

Il prossimo passo è creare dei contenuti (file) nel tuo progetto. Questi possono essere qualsiasi tipo di file, poiché la maggior parte dei progetti di programmazione sono costituiti da codice (testo) e risorse come grafica (binaria) Tutto ciò che c'è da sapere sui formati di file e le loro proprietà Tutto ciò che c'è da sapere sui formati di file e le loro proprietà usa la parola file in modo intercambiabile: musica, immagine, foglio di lavoro, presentazione e così via. Ma cosa rende un file un "file", comunque? Proviamo a capire questa parte fondamentale dell'informatica. Leggi di più . Una volta creato, fai quanto segue alla riga di comando mentre sei ancora nella directory del tuo progetto:

stato git

Il primo passo verso un commit è “palcoscenico” gli articoli nuovi o aggiornati. Guarda come l'output sopra riportato ti fa sapere che ci sono “non è stato classificato” i cambiamenti? Puoi mettere in scena tutto nella tua directory (in modo ricorsivo, cioè includere sottocartelle e relativi file) con questo comando:

git -a .

Il “-un” la bandiera è per “Inserisci,” e il periodo si riferisce alla directory corrente. In pratica sta dicendo “aggiungi tutti i file al mio commit.” Ora per eseguire effettivamente il commit, digitare quanto segue:

git commit -m "WHOOP, il mio primo commit!"

Ora quando controlli di nuovo lo stato, non ci dovrebbero essere cambiamenti in attesa. Per vedere il commit stesso, controlla il log git, usando modalità grafico, con l'elenco tagliato a una linea, e decorato per leggibilità:

git log --all --decorate --oneline --graph

Questo ti mostrerà una bella sequenza temporale del tuo commit, con il più recente in cima.

3. Creare un ramo per l'esperimento

Mentre stai lavorando, potresti voler andare in una direzione particolare, non sapendo se andrà a finire. Per questo ti consigliamo di creare un ramo con il seguente comando:

git branch experiment1 git checkout experiment1

Il secondo comando ti porta su “experiment1” ramo. Puoi tornare indietro sostituendolo con “maestro.” Quando inizi a lavorare sul tuo testo, nota la differenza tra il stesso file da ogni ramo Prima il “experiment1” ramo con il tuo nuovo testo:

Confronta questo con l'originale:

Ora, dopo aver lavorato per un po '(finendo con un nuovo commit), il meglio che si può ottenere è “Lorem ipsum dolor sit amet… ?” Cos'è quello? È una sciocchezza e dovrebbe essere immediatamente colpito dal tuo progetto. Puoi cestinare il tuo ramo con il seguente comando (“-D” per eliminare la forza):

git branch -D experiment1

Ora avvia un altro ramo e aggiungi qualcosa di intelligente, insieme ad alcune immagini:

git branch experiment2 git checkout experiment2 git add. git commit -m "Altro testo, immagini aggiunte"

4. Unisci le tue modifiche

Infine, una volta che sei soddisfatto dei cambiamenti nel tuo ramo attuale, il seguente comando li unirà con il “maestro” ramo. A condizione che non stiate facendo un sacco di salti avanti e indietro tra i due, ciò comporterà l'applicazione di tutte le nuove modifiche e una nuova revisione creata. Quanto segue alla riga di comando li combinerà per te:

git merge experiment2

Ora avrai una revisione che combina l'ultima in “maestro” con l'ultimo in “Prova 2.” A questo punto puoi sbarazzarti dell'esperimento (dopotutto ha avuto successo) con il seguente:

git branch -d experiment2

Nota che perderai solo le modifiche incrementali apportate all'interno di quel ramo se lo fai.

5. Spingi in un posto sicuro

Infine, Git è un distribuito sistema, il che significa che puoi avere più copie del tuo repository e sincronizzarle. Ad esempio, creare un nuovo repository su un server è possibile SSH in Come gestire in remoto un server Linux con SSH Come gestire in remoto un server Linux con SSH SSH è molto funzionale, motivo per cui è un go-to per la gestione remota del server. Scopri come gestire da remoto un server Linux tramite SSH, dalla connessione, all'installazione del software e ai trasferimenti di file. Leggi di più con questo comando:

git init --bare

Il “-spoglio” flag lo imposta come una sorta di repository di sola lettura, in quanto non è possibile modificare direttamente i file. Quindi puoi impostarlo come una copia remota del tuo repository locale con il seguente (il primo comando garantisce che i nuovi rami locali vengano creati in remoto):

git config push.default matching git remote aggiungi centrale ssh: // [nome utente] @ [URL] / percorso / su / repository git push --set-upstream master centrale

Configurare per il controllo delle versioni e il backup con Git

Con l'impostazione di cui sopra, puoi seguire un semplice processo per mantenere tutto il lavoro che fai su un progetto non solo con la versione, ma anche con il backup.

  1. Apporta modifiche ai file di progetto.
  2. Problema “aggiungi git .” per aggiungere tutte le modifiche a un commit.
  3. Problema “git commit -m [qualche messaggio]” per impegnare le modifiche al tuo Locale repository. Ripeti dall'inizio.
  4. Problema “spingere” per trasferire le modifiche a un repository remoto a intervalli regolari.
  5. Problema “git clone ssh: // [nome utente] @ [URL] / percorso / su / repository” da qualche altra macchina a

I vantaggi dei sistemi di controllo delle versioni sono qualcosa che ti interessa? O le applicazioni di backup non di sviluppo sono sufficienti per le tue esigenze? Fateci sapere i vostri pensieri nei commenti qui sotto!

Scopri di più su: Gestione file.