Hos meg bar den forsiktige starten preg av at jeg ikke helt klarte å gripe prosessen. Jeg trengte en lettforståelig usecase som viste nøyaktig hvordan jeg kunne få mittlegendariskeprosjekt.com under versjonskontroll, og jeg trengte hjelp med å forstå gangen i fortsettelsen.
Legg en eksisterende Drupal-site under versjonskontroll
Vårt mål er å få siten under versjonskontroll, slik at oppgraderinger kan gjøres lokalt, og testes offline før resten av verden får se linkfargen endres fra #ff3366 til #ff3399. Før vi fortsetter, sjekk at følgende er sant:
- Din site lever sitt glade liv på en server hvor git er installert
- Du har tilgang til ssh
- Du har opprettet en gratis konto på Github.com + opprettet et prosjekt
- Kaffen smaker
Ssh inn på serveren din, og gå til roten av siten:
$ cd public_hml/
Her kjører vi:
$ git init
Nå er repo opprettet, men ingenting er lagt til. Dette kan du sjekke ved å kjøre en kommando du kommer til å bruke rett som det er:
$ git status
For å legge rubb og stubb inn i git, kjører vi kort og godt:
$ git add .
Men det skulle du ikke gjort! For det er ikke alle filer vi ønsker å ha med. Filer som stadig endres, eller som kun gir mening på en bestemt server vil vi typisk utelate. Derfor anbefales det å opprette en fil ved navn .gitignore som legges i roten av siten (ikke i .git-mappen). I denne filen har jeg følgende innhold som standard for Drupal-sider:
.DS_Store
sites/default/files
sites/default/settings.php
.htaccess
CVS
robots.txt
backup
cache
_MACOSX
Det finnes gode grunner for å utelate disse filene, spesielt de som faktisk hører hjemme i en fungerende site. Du kan selv tenke ut hvorfor :) Etter å ha opprettet en .gitignore du er godt fornøyd med, kan de legge til filene (se over).
Nå kan du gjøre din første commit. For hver commit må du også i samme slengen gi en logg-beskjed. Kjør:
$ git commit -m "Her er loggbeskjeden min! I fremtiden kommer jeg sikkert til å skrive FIRST eller INITIAL COMMIT slik proffene i utlandet gjør."
Og vips kan du velge deg et repo på github, og la dette bli basen for din verdifulle kode:
git remote add origin git [at] github [dot] com:front/mittlegendariskeprosjekt.git
Hente siten fra github til din egen maskin
Herfra er det fryd og gammen. Hent filene fra github:
$ git clone git [at] github [dot] com:front/mittlegendariskeprosjekt.git
Legg inn noen standardfiler som måtte mangle, som .htaccess og settings.php (se over). Kopier databasen fra live site, installer lokalt, og dermed er du klar for å endre den skjærende rosafargen til noe enda litt mer skjærende i style.css.
For at git skal ta hensyn til dine endringer, må du på nytt add'e filer som er endret/slettet/lagt til. Får oversikt ved å sjekke status (git status), og legg til endringene:
$ git add sites/all/themes/mittlegendariskeprosjekt/css/style.css
Commit endringene:
$ git commit -m "Rosafargen var lei. Nå er den så fin, så."
Og til slutt: Send endringen til github:
$ git push origin master
Gratulerer! Men på livesiten ser alt ut som før...! Hvorfor? Fordi endringene som nå er blitt synlige i github ikke er hentet fra livesiten! Kronen på verket blir derfor å gå inn på live serveren og hente godsakene:
$ git pull origin master
Gratulerer, du har herved revolusjonert din egen arbeidsflyt! Og forhåpentligvis blitt bitt av git.