È successo a tutti noi: cambiamo qualcosa nel nostro codice e all'improvviso tutto sembra "rotto". Questo è quando il controllo della versione è un vantaggio, se sai come usarlo. In questo tutorial, impareremo come usare Git dalla riga di comando.
Xcode e altri IDE moderni hanno opzioni di base per Git integrate nella loro interfaccia grafica, ma si ottiene solo il controllo ad alto livello del repository (repository Git) tramite la riga di comando. Se stai facendo codifica avanzata o gestione Git, è importante essere a tuo agio con la riga di comando. Se non hai mai usato la riga di comando in precedenza, potresti voler controllare il mio altro tutorial sull'argomento:
Prima di iniziare, dovremmo rivedere ciò che è esattamente il controllo della versione. UN Sistema di controllo della versione è una soluzione software che può facilmente salvare revisioni del codice e di altri dati in modo da poter tornare alle versioni precedenti, rivedere le modifiche apportate e condividere gli aggiornamenti con i collaboratori.
Ci sono molti vantaggi e casi d'uso per il controllo della versione. Ad esempio, rivedendo le modifiche ("impegna") per il tuo progetto, puoi identificare chi ha scritto un particolare bit di codice e perché: puoi anche ripristinare tutte le modifiche riscontrate in errore o per interrompere la funzionalità.
Il sistema di controllo delle versioni più utilizzato oggi è Git, quindi è quello che vedremo in questo post. Sappi che esistono altri sistemi ampiamente usati, ad esempio, SVN e Mercurial.
Quando si utilizza il controllo della versione, si crea a deposito, o pronti contro termine, ed è più comune ospitare questo repository su a Servizio di gestione del repository. Ai fini di questo tutorial, non ospiteremo il nostro repository ovunque, quindi puoi concentrarti sull'effettivo utilizzo del controllo della versione. Se vuoi, però, puoi leggere su questi servizi di gestione dei repository e dovresti essere in grado di applicare questa conoscenza a loro, se lo desideri.
Alcuni esempi di questi sono GitHub, Bitbucket, GitLab e Coding, e sono ampiamente utilizzati dagli sviluppatori di tutto il mondo. Io, e molti altri, uso GitHub perché ospita un numero enorme di progetti open-source. I repository GitHub sono pubblici per impostazione predefinita, ma è possibile creare repository privati a pagamento mensile.
Per iniziare, dovrai creare una nuova applicazione in Xcode. Per questa app, puoi utilizzare qualsiasi modello che desideri e se hai un'app attuale con un repository Git, puoi usarla anche per questo tutorial.
Ecco come dovrebbe apparire l'IDE appena prima di creare finalmente il tuo progetto (quando devi decidere dove posizionare il progetto):
Assicurati che la scatola che dice Crea repository Git sul mio Mac è controllato, in quanto ciò garantirà che il tuo progetto avrà internamente il repository. Successivamente, se scegli di utilizzare un sistema di gestione del repository, sarai in grado di farlo Spingere tutto questo codice e ogni commettere che tu abbia mai fatto apparirà.
Per accedere alla riga di comando, è necessario aprire il terminale. Puoi farlo in due modi. Puoi aprire Trampolino di lancio, e lì puoi trovare il terminale icona nel Altro cartella nella prima pagina di Launchpad. Oppure puoi colpire Comando-Space sulla tastiera e cerca terminale nel Riflettore.
Una volta aperto il terminale, dovresti vedere qualcosa di simile al seguente.
Questo è chiamato il "prompt dei comandi": vedrai la directory corrente, quindi il tuo nome utente seguito da a $
.
Tutto ok! Ora sei pronto per imparare come utilizzare il controllo della versione sul terminale.
Ecco alcuni dei comandi di base di cui ho scritto nel mio tutorial su come iniziare con Terminal. Dovrai conoscerli per poter utilizzare il terminale in modo efficace.
Aiuto
-come suggerisce il nome, è possibile digitare questo comando nel Terminale per ottenere un elenco di comandi diversi.uomo
-simile al comando precedente, questo comando ti dice esattamente cosa fa un comando (e ti fornisce tutta la documentazione) senza che tu debba cercare Google per questo.Gestione dei file
ls
-elenca tutti i contenuti nella directory corrente. Questo comando è utile se non vuoi utilizzare il Finder per sfogliare i file: puoi semplicemente elencarli usando questo comando nel tuo Terminale.CD
-questo comando è usato per cambiare directory. Se scrivi CD
da solo, uscirai dalla directory corrente. Dopo aver usato ls
(per vedere le directory), puoi scrivere il nome della directory che vuoi inserire.default
-questo comando viene utilizzato per modificare le impostazioni di sistema predefinite, alcune delle quali non possono essere modificate senza utilizzare il terminale.caffeinate
-come suggerisce il nome, questo comando è usato per impedire al tuo Mac di oscurarsi, spegnersi o dormire. Per concludere, tutto ciò che devi fare è premere Control-C.vim
-Questo è uno dei miei preferiti. È possibile modificare i file di testo utilizzando il predefinito TextEdit (o qualsiasi editor basato su GUI), ma vim
è fondamentalmente un editor di testo da riga di comando, cioè funziona interamente all'interno del terminale.ping
-questo comando consente di controllare il tempo di risposta del server di un URL o indirizzo IP specificato. Questo potrebbe non essere utile per ogni sviluppatore, ma è bello sapere.sudo
-un modo per ignorare i privilegi dell'utente e diventare un superutente del computer. Ti verrà richiesta una password amministratore quando la usi.Ora che hai visto alcuni comandi base del terminale, impariamo le diverse cose che puoi fare con Git. Non li coprirò tutti, ma ti insegnerò i principali che utilizzerai nello sviluppo quotidiano. Se hai bisogno di ulteriori informazioni, puoi semplicemente correre aiuto
nel tuo terminale per i dettagli, e se ciò non è sufficiente, per la documentazione completa, è possibile eseguire amico
per ottenere la pagina di manuale.
Ecco come appaiono le pagine di aiuto:
git clone remote-repo-link
-se vuoi clonare un repository da un servizio di gestione del repository, puoi usare questo comando insieme all'URL per ottenere una copia locale sul tuo computer.git init
-se stai creando un nuovo repository da una cartella esistente, puoi usare questo comando. Inizializzerà la cartella corrente come un nuovo repository. Di solito, lo faresti quando crei un progetto per la prima volta.stato git
-ti dice quali file nella tua directory di lavoro sono stati modificati. Se hai cambiato i file, potrebbe essere il momento di fare un commit!git commit -am "messaggio di commit utile"
-quando hai apportato alcune modifiche al tuo progetto (ad esempio, quando hai completato una funzione semplice o hai apportato una correzione di bug), devi confermare la tua modifica. Assicurati di fornire un messaggio di commit chiaro e conciso, in quanto ciò aiuterà gli altri sviluppatori a capire cosa hai fatto e perché.git aggiungi nome file
o git add --all
-se aggiungi un nuovo file al repository, dovrai aggiungerlo al repository prima di eseguirlo. Utilizzare il Inserisci
comando. git branch branch-name?
-con questo comando, puoi elencare i rami attuali o crearne uno nuovo.git merge branch-name
-unire il ramo corrente con il ramo indicato. Questo combinerà il codice nel ramo corrente con quello indicato.git checkout branch-name
-passare al ramo indicato. Questo metterà semplicemente da parte il ramo corrente e renderà attivo l'altro ramo.spingere
-aggiorna il repository nel sistema di gestione del repository. Dopo aver apportato le modifiche e verificato che il codice funzioni correttamente, puoi inserire il codice in modo che gli altri membri possano vedere il codice e trascinarlo.tira fuori
-aggiorna la copia di lavoro locale del repository per riflettere gli ultimi aggiornamenti che sono stati inviati al sistema di gestione del repository. È una buona idea farlo prima di apportare modifiche se stai lavorando a un team.Questi sono alcuni dei comandi principali che userete nel controllo della versione per iniziare, ma prima di terminare questo tutorial, diamo un'occhiata ad alcuni di questi in profondità con il progetto Xcode che abbiamo creato in precedenza.
Ora, diamo un'occhiata ad alcuni esempi su come utilizzare Git da riga di comando con il progetto Xcode che abbiamo creato in precedenza in questo tutorial. Nota che utilizzeremo i comandi del terminale sopra, quindi assicurati di continuare a consultarli o memorizzarli.
Prima di iniziare, è necessario accedere alla directory del progetto utilizzando i comandi sopra menzionati (suggerimento: utilizzare il comando CD
e ls
comandi). Una volta che sei lì, corri ls
e assicurati di avere qualcosa di simile a questo:
Ta-da! Ora sei nella directory del tuo progetto e sei pronto a fare tutto il necessario con il tuo progetto. Basta seguire mentre ci impegniamo e si ramificano.
Il commit del tuo codice è la cosa che farai più spesso nella programmazione. Non appena apporti un cambiamento di lavoro, la migliore pratica è quella di impegnarlo con commenti dettagliati.
Per iniziare, apportare una modifica al progetto Xcode. Per il mio, aggiungerò semplicemente la seguente riga di codice fittizio nella mia viewDidLoad ()
metodo:
let foobar = "foo"
Dopo aver aggiunto (o sottratto) una o due righe di codice, sei pronto per controllare lo stato del tuo progetto. Per fare ciò, incolla il seguente comando (meno il $
prompt) nella finestra del terminale:
$ git status
Vedrai qualcosa di simile a questo:
Il file che hai modificato è evidenziato in rosso, che ti dice che ha modifiche non vincolate.
Se si desidera impegnare solo determinati file, è possibile farlo utilizzando una "area di gestione temporanea" in cui verranno impegnati solo i file. Per aggiungere tutti i file modificati all '"area di staging", tutto ciò che devi fare è eseguire la seguente riga di codice:
$ git add -A
Il -UN
il flag che vedi significa che tutti i file che hai modificato verranno aggiunti (-UN
è per tutti, e puoi anche scrivere git add --all
).
Per vedere che i file sono pronti per il commit, è sufficiente eseguire nuovamente quanto segue:
$ git status
Vedrai qualcosa di simile a questo:
Vedere? Lo stesso file che era rosso ora è verde, il che indica che l'hai preparato correttamente per il commit.
Infine, per eseguire finalmente il commit del codice, tutto ciò che devi fare è eseguire il seguente comando nel tuo terminale e tra le virgolette aggiungere un messaggio.
$ git commit -m "Il mio primissimo commit."
Il -m
flag dice al terminale che aggiungerai un messaggio al tuo file, ed è molto importante essere chiari con questo messaggio. Questi messaggi sono fondamentali per tenere traccia delle modifiche al tuo progetto.
Ora hai fatto il tuo primo commit! Sei sulla strada giusta per rendere il tuo codice più facile e più sicuro.
La seconda cosa più comune che farai come sviluppatore è creare, unire e utilizzare i rami per risolvere il tuo codice e isolare le funzionalità prima di distribuirle ai clienti.
Per impostazione predefinita, ci si trova in quello che chiamiamo il ramo "master". Questa è la branca principale alla quale, alla fine, dovrebbe succedere di tutto. La migliore pratica, in particolare quella di lavorare con una squadra, è quella di lavorare su nuove importanti funzionalità nelle proprie filiali, che saranno poi riunite in master una volta completate..
Per esercitarti a lavorare con i rami, creiamo un nuovo ramo. Per fare ciò, eseguire il seguente comando:
$ git branch my-first-branch
Puoi nominare il ramo come preferisci.
Per vedere il nuovo ramo, puoi digitare:
$ git branch
Quando esegui quel comando, vedrai qualcosa di simile a questo:
Si noti che è possibile vedere due rami: maestro
e my-prima-branch
(o qualunque sia il nome del tuo ramo). Inoltre, vedrai che c'è un asterisco vicino a maestro
filiale, che indica che ci si trova attualmente in quella filiale.
Se è necessario passare a un altro ramo esistente, sarà necessario check-out
quel ramo. Quando lo fai, stai lasciando il ramo attuale e tutto il suo codice rimarrà intatto (insieme alle tue modifiche locali), ma la tua directory di lavoro verrà popolata con il codice dal ramo che hai controllato.
Provalo con il seguente comando:
$ git checkout mio-primo-ramo
Dovresti ottenere una conferma che assomigli a questo:
Ora sei passato a questo ramo e dovrebbe essere una lavagna pulita. Per confermare questo, corri stato git
per verificare se ci sono dei file modificati.
Dopo aver completato le modifiche, normalmente si unirà il ramo al ramo principale. Non abbiamo ancora apportato alcuna modifica, quindi facciamolo ora prima di unire i due rami.
Apporta un'altra modifica al progetto Xcode. Per il mio, aggiungerò semplicemente la seguente riga di codice fittizio nella mia viewDidLoad ()
metodo:
lascia gooey = "fooey"
Puoi apportare qualsiasi modifica che ti piace. Assicurati di sapere quale file e quali modifiche hai apportato.
Al termine, esegui nuovamente la seguente riga di codice:
$ git status
Ora dovresti vedere il nome del file in rosso e dovrai impegnarti prima di unire questa modifica al tuo ramo principale. Confido che tu sappia come farlo, quindi passiamo al prossimo passo. Verifica che il commit abbia avuto successo stato git
.
A questo punto, dovresti aver impegnato il codice, quindi prepariamoci a unire i due rami. Innanzitutto, esegui il seguente comando:
$ git checkout master
Questo comando passa a maestro
filiale per prepararsi a fondersi con l'altro ramo che abbiamo creato. Infine, per unire, eseguire il seguente comando:
$ git unire il mio primo ramo
Dovresti ricevere una conferma simile a questa:
Ora i tuoi cambiamenti dal ramo della funzione sono stati riuniti in master. Se il ramo master è cambiato da quando è stato creato il ramo, Git proverà a combinare automaticamente le modifiche del ramo delle caratteristiche con il master. Se non può farlo automaticamente, ti chiederà di risolvere manualmente eventuali conflitti.
Ora sai come unire i rami, crearli e passare da uno all'altro utilizzando solo il Terminale!
Come vedi, non è troppo difficile eseguire il controllo della versione con il tuo progetto, e le ricompense valgono la pena. Il controllo della versione è una best practice di sviluppo fondamentale e dovresti averne familiarità se vuoi lavorare in un contesto professionale.
Spero che questo post ti abbia dato la sicurezza di utilizzare il controllo della versione su base giornaliera. Se vuoi saperne di più su Git, guarda alcuni dei nostri video didattici animati qui su Envato Tuts+.