Î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.
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.
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!
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.
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
.
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 fihttp://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 șiawesomeProject
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: