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_html
directory, 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 master
per ottenere l'installazione predefinita nel nostro repository nudo - Aggiungi un
post-receive
hook 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-update
hook al repository nelpublic_html
caso 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 onAfterRender
o 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.