Sto iniziando a utilizzare Git per gestire le build del sito Joomla e sto cercando alcune indicazioni sulle migliori pratiche. Così com'è:
- Utilizzare WHM per eseguire il provisioning di un nuovo account. Ho scritto un hook post-installazione per scaricare automaticamente Joomla da Github e posizionarlo nella relativa
public_htmldirectory, nonché creare il database e l'utente DB - Installa manualmente Joomla tramite l'interfaccia web (anche se attualmente stai cercando un modo per automatizzare anche questo)
- Imposta un repository nudo sopra
public_html: qui è dove gli utenti spingono e tirano. Chiameremo questoorigin - Imposta un repository standard in
public_html - Aggiungi uno specifico di Joomla
.gitignore - Specifica il repository nudo come remote (
git remote add origin ../repo.git) - Eseguire
git add ., quindigit commit -m"Initial J! Commit",git push origin masterper ottenere l'installazione predefinita nel nostro repository nudo - Aggiungi un
post-receivehook al repository nudo per inserire automaticamente le modifiche nel repositorypublic_html(poiché il repository nudo è il punto in cui gli sviluppatori invieranno le modifiche locali) - Aggiungi un
post-updatehook al repository nelpublic_htmlcaso in cui qualcuno apporti modifiche sul server ... anche se non dovrebbero
Non sono troppo preoccupato per i database al momento. Il mio problema principale ora riguarda le aggiunte / modifiche al file Joomla. Ovviamente, quando installo modelli ed estensioni, alcuni file verranno aggiunti e rimossi. Allo stesso modo gli aggiornamenti di Joomla causeranno cambiamenti.
Qual è il modo migliore per gestire queste modifiche sul server? Stavo pensando di scrivere un piccolo plugin che corre onAfterRendero simile che utilizza PHPGit da eseguire git add ., git commit git push origin master. Quindi, nella mia copia locale, posso solo fare un tiro e tutto passa. O c'è un modo migliore?
.gitignore? Attualmente sono l'unico sviluppatore e sono abbastanza nuovo in Git, quindi stavo seguendo alcune indicazioni sul flusso di lavoro degli sviluppatori web online per portarmi dove sono, portando alla struttura nuda / pubblica.