Il flusso di lavoro perfetto, con Git, GitHub e SSH

In questa lezione, ci concentreremo sul flusso di lavoro. In particolare, utilizzeremo i ganci del servizio GitHub per aggiornare automaticamente un progetto sul nostro server personale ogni volta che trasferiamo gli aggiornamenti a un repository GitHub.


Preferisci un video tutorial?


Passaggio 1: crea un Git Repo

Abbiamo certamente bisogno di una sorta di progetto con cui giocare, giusto? Facciamolo adesso. Usando quale strumento sempre preferisci (ti consiglio Structurer), crea una nuova directory, chiamata awesomeProject, e aggiungere un index.html file. Sentiti libero di popolarlo con qualche markup senza senso per il momento.

Con la nostra directory test installata, creiamo il nostro primo commit Git.

Se non conosci Git, ti consiglio vivamente di rivedere "Easy Version Control with Git."

Apri la riga di comando:

 cd path / to / awesomeProject git init git add. git commit -m 'Primo commit'

Chi ha familiarità con Git dovrebbe sentirsi a casa. Stiamo creando un repository Git, aggiungendo tutti i file all'area di staging e creando quindi il nostro primo commit.


Passaggio 2: caricamento su GitHub

Il prossimo passo è caricare il nostro progetto su GitHub. In questo modo, possiamo facilmente chiamare a tira fuori per scaricare questo progetto da qualsiasi computer / server che desideriamo.

Di nuovo, se non hai familiarità con GitHub e non hai ancora creato un account, leggi Terminal, Git e GitHub per il resto di noi.

Inizia creando un nuovo repository Git.

Successivamente, dovrai inserire alcuni dettagli sul tuo progetto. È semplice:

E infine, dal momento che stiamo già lavorando con un repository Git esistente, abbiamo solo bisogno di eseguire:

 git remote add origin [email protected]: Your-Username / awesomeProject.git git push -u origine master

Con quello fuori strada, il nostro awesomeProject è ora disponibile su GitHub. È stato facile!


Passaggio 3: SSH

Ora, abbiamo certamente bisogno di una sorta di anteprima dal vivo per il nostro progetto, idealmente memorizzato sul nostro server. Ma a volte può essere un dolore. Invia i tuoi aggiornamenti a GitHub, accedi al tuo server, trasferisci manualmente la directory aggiornata, ecc. Certo, ci vuole solo un momento, ma quando fai più cambiamenti durante il giorno, questo può diventare rapidamente un onere.

Ma un passo alla volta. Affronteremo questo dilemma al punto 4. Per ora, inseriamo semplicemente il nostro repo Git sul nostro server. Per fare ciò, abbiamo bisogno di SSH in.

A seconda dell'host, le credenziali SSH variano leggermente. Cerca su Google "SSH del tuo nome host" e troverai sicuramente le istruzioni necessarie. Una volta che sei pronto, andiamo avanti:

Useremo il mio server personale come esempio:

 ssh [email protected] 

E con quelle due linee, siamo dentro!

Avanti, noi CD alla directory principale di cui vogliamo memorizzare awesomeProject. Per me, questo sarà: domini cd / demo.jeffrey-way.com / html /. Ovviamente, modifica questo in base alla tua struttura di directory.

Git Clone

Cerchiamo di clonare il repository GitHub ora.

 git clone [email protected]: Your-User-Name / awesomeProject.git

Dare quel comando qualche secondo, ma, prima che tu lo sai, quella directory è ora disponibile sul tuo server, e, nel mio caso, potrebbe essere vista a: http://demo.jeffrey-way.com/awesomeProject.


Passaggio 4: creazione di una connessione

Il problema inerente a questo punto è che non esiste una connessione specifica tra il nostro repository GitHub e la directory memorizzata sul nostro server - almeno non una connessione automatica. Ad esempio, se aggiorniamo i nostri file di origine sul nostro computer locale, quindi trasferiamo le modifiche a GitHub:

 git aggiungi index.html git commit -m 'Aggiunta la foto del pollo danzante' git push origin master

Queste modifiche non si rifletteranno certamente sul nostro server. Certo che non lo faranno! Per fare ciò, dobbiamo - ancora una volta - SSH nel nostro server, CD al awesomeProject directory ed eseguirne un altro tira fuori per portare i file sorgente aggiornati.

Non sarebbe bello se, ogni volta che abbiamo spinto gli aggiornamenti su GitHub, quei nuovi file sorgente fossero automaticamente aggiornati sul nostro server di anteprima dal vivo?

A quanto pare, possiamo farlo abbastanza facilmente con i ganci del servizio GitHub.

Puoi accedere a questa pagina premendo il pulsante "Admin" all'interno del repository GitHub, quindi facendo clic su "Service Hooks". L'opzione "URL post-ricezione" istruirà GitHub a inviare una richiesta POST alla pagina specificata ogni volta che si preme al repository GitHub. Questo è esattamente ciò di cui abbiamo bisogno!

"Colperemo questi URL con le richieste POST quando ci spingerai, passando le informazioni sulla spinta".

Per fare in modo che questo funzioni, abbiamo bisogno di creare un altro file che gestirà il processo di esecuzione del tira fuori. Aggiungi un nuovo file, chiamato github.php (o qualsiasi cosa tu desideri - preferibilmente più vago), e aggiungi:

  

Quindi ora stai pensando: "Jeff è impazzito, non puoi mettere uno script Bash in una stringa PHP". Bene? si puoi, una volta che ti rendi conto che quelle non sono citazioni singole sopra, sono back-ticks.

Quando si avvolge una sequenza in back-ticks, in PHP, verrà trattata come uno script Bash. In effetti, è identico all'utilizzo della funzione bash_exec.

Salva quel file e caricalo su awesomeProject directory sul tuo server. Al termine, copia l'url in quel file e incollalo nella casella di testo "URL post-ricezione". Nel mio caso, l'url sarebbe http://demo.jeffrey-way.com/awesomeProject/github.php.

Con questo in atto, ogni volta che tu Spingere al tuo repository GitHub, quel file verrà chiamato e il awesomeProject la directory sul tuo server si aggiornerà automaticamente, senza che tu debba muovere un dito. Abbastanza elegante, ay?


Anche tu puoi goderti:

  • Ottenere il blocco di GitHub
  • Terminal, Git e GitHub per il resto di noi
  • Facile controllo della versione con Git
  • Stai bene con Git - eBook