Fluxul de lucru perfect, cu Git, GitHub și SSH

În această lecție, ne vom concentra pe fluxul de lucru. Mai precis, vom folosi cârligele de serviciu GitHub utile pentru a actualiza automat un proiect pe serverul nostru personal ori de câte ori împingem actualizări la un repo GitHub.


Prefer un Video Tutorial?


Pasul 1 - Creați un Git Repo

Cu siguranță avem nevoie de un fel de proiect pentru a juca, nu? Să facem asta acum. Folosind instrumentul vreodată pe care îl preferați (aș recomanda structuratorul), creați un nou director, numit awesomeProject, și adăugați un index.html fişier. Simțiți-vă liber să o ocupați cu un anumit marcaj gibberan pentru moment.

Cu ajutorul directorului nostru de testare, să creăm primul nostru angajament Git.

Dacă nu sunteți familiarizați cu Git, vă recomandăm să consultați mai întâi "Easy Version Control with Git".

Deschideți linia de comandă:

 calea cd / la / awesomeProject git init git add. git commit -m "Primul comite"

Cei familiarizați cu Git ar trebui să se simtă ca acasă. Creați un replică Git, adăugând toate fișierele în zona de așteptare și apoi creați primul nostru angajament.


Pasul 2 - Încărcarea în GitHub

Următorul pas este să încărcați proiectul nostru în GitHub. În acest fel, putem apela cu ușurință a git trageți pentru a descărca acest proiect de la orice computer / server dorim.

Din nou, dacă nu sunteți familiarizat cu GitHub și nu ați creat încă un cont, citiți Terminal, Git și GitHub pentru restul de noi.

Începeți prin crearea unui nou depozit Git.

Apoi, va trebui să completați câteva detalii despre proiectul dvs. Este simplu:

Și, în sfârșit, din moment ce lucrăm deja cu un repo Git existent, trebuie doar să fugim:

 git remote adăugați originea [email protected]: Numele dvs. de utilizator / awesomeProject.git git push -u master de origine

Cu asta, din cauza noastră awesomeProject este disponibil acum pe GitHub. A fost ușor!


Pasul 3 - SSH

Acum, avem nevoie de un fel de previzualizare live pentru proiectul nostru, în mod ideal stocat pe propriul nostru server. Dar poate fi uneori o durere. Apasă-ți actualizările la GitHub, autentifică-te la serverul tău, transferă manual directorul actualizat etc. Beneficiu, durează doar un moment, dar când faci mai multe modificări în timpul zilei, aceasta poate deveni rapid o povară.

Dar un pas la un moment dat. Vom aborda această dilemă în pasul 4. Pentru moment, să purtăm pur și simplu reparația Git pe serverul nostru. Pentru a face acest lucru, trebuie să intram în SSH.

În funcție de gazdă, datele dvs. de acreditare SSH vor varia ușor. Căutați Google pentru numele SSH-ului dvs. și veți găsi cu siguranță instrucțiunile necesare. Odată ce sunteți gata, hai să ne mutăm:

Vom folosi serverul meu personal ca exemplu:

 ssh [email protected] 

Și cu cele două linii, suntem înăuntru!

Apoi, noi CD la directorul părinte al locului în care dorim să stocăm awesomeProject. Pentru mine, aceasta va fi: cd domenii / demo.jeffrey-way.com / html /. Desigur, modificați acest lucru în funcție de structura dvs. de directoare.

Git Clone

Hai să clonăm repo-ul GitHub acum.

 git clone [email protected]: numele dvs. de utilizator / awesomeProject.git

Dă comanda în câteva secunde, dar, înainte să știi, acel director este acum disponibil pe serverul tău și, în cazul meu, ar putea fi vizionat la: http://demo.jeffrey-way.com/awesomeProject.


Pasul 4 - Crearea unei conexiuni

Problema inerentă în acest moment este că nu există o legătură specifică între repo-ul nostru GitHub și directorul stocat pe serverul nostru - cel puțin nu o conexiune automată. De exemplu, dacă actualizăm fișierele sursă pe mașina noastră locală și apoi împingem modificările la GitHub:

 git adăugați index.html git commit -m "Fotografia adăugată a dansului de pui" git push origin master

Aceste modificări nu vor fi cu siguranță reflectate pe serverul nostru. Desigur, nu vor! Pentru a face acest lucru, trebuie să - o dată în plus - SSH în serverul nostru, CD la awesomeProject director, și efectuați altul git trageți pentru a aduce fișierele sursă actualizate.

Nu ar fi minunat dacă, de fiecare dată când am împins actualizările la GitHub, acele fișiere sursă noi au fost actualizate automat pe serverul nostru live de previzualizare?

După cum se dovedește, putem face acest lucru cu ușurință cu cârlige de serviciu GitHub.

Puteți accesa această pagină apăsând butonul "Admin" din repo GitHub, apoi făcând clic pe "Cârlige de serviciu". Opțiunea "Post-primire URL" va instrui GitHub să trimită o solicitare POST pe pagina specificată de fiecare dată când împingeți la repo GitHub. Acesta este exact ceea ce avem nevoie!

"Vom lovi aceste adrese URL cu cereri POST când ne împingeți, transmitem informații despre împingere".

Pentru a face acest lucru, va trebui să creați încă un fișier care să se ocupe de procesul de efectuare a acestuia git trageți. Adăugați un fișier nou, numit github.php (sau orice doriți - preferabil mai vag) și adăugați:

  

Deci acum vă gândiți: "Jeff a devenit nebun. Nu puteți pune un script Bash într-un șir PHP". Bine? da, poti, odata ce realizezi ca acestea nu sunt citate singulare de mai sus, sunt in spate-ticks.

Când înfășurați o secvență în back-ticks, în PHP, acesta va fi tratat ca un script Bash. De fapt, este identic cu utilizarea funcției bash_exec.

Salvați fișierul și încărcați-l la awesomeProject director pe serverul dvs. Când ați terminat, copiați urlul la acel fișier și inserați-l în caseta de text "Post-primire URL". În cazul meu, url ar fi http://demo.jeffrey-way.com/awesomeProject/github.php.

Cu acest lucru în loc, de fiecare dată când tu Apăsați la repo GitHub, acel fișier va fi apelat și awesomeProject director pe serverul dvs. va actualiza automat, fără a fi nevoie să mutați un deget. Destul de minunat, ay?


De asemenea, vă puteți bucura:

  • Obținerea Hang of GitHub
  • Terminal, Git și GitHub pentru ceilalți
  • Controlul versiunii ușoare cu Git
  • Noțiuni de bază bun cu Git - eBook
Cod