2015-06-29 11 views
15

Sto cercando di trovare una soluzione per un compito molto difficile: versione corretta che controlla WordPress, in particolare quando si lavora con gli aggiornamenti automatici.Come incorporare gli aggiornamenti automatici di WordPress con Git come controllo di versione?

WordPress consente molta semplicità consentendo agli utenti di aggiornare file, temi e plug-in core di WordPress semplicemente facendo clic su un pulsante. Ma cosa succede quando hai quel sito web sotto controllo di versione con qualcosa come Git? Non appena clicchiamo sul pulsante "Aggiorna ora", il nostro repo Git sarà fuori sincrono e quindi sconfiggerà lo scopo di creare un repo Git in primo luogo.

Ho cercato modi per aggirare questo problema e tutto quello che sono riuscito a trovare sono stati diversi modi per strutturare l'installazione di Wordpress suddividendo i componenti nei sottomoduli Git. Uno degli esempi più popolari è il modello WordPress-Skeleton.

Sebbene questo funzioni per controllare ogni modulo/componente di WordPress, non consente all'utente di essere in grado di utilizzare il pulsante di aggiornamento automatico da WordPress, in quanto ciò aggiornerà i file in produzione ma non li impegna nel tuo repository Git.

In un mondo ideale, dovremmo essere in grado di controllare la versione di tutti i file in un unico repository e quindi quando clicchiamo sul pulsante "Aggiorna ora", dovrebbe aggiornare il nostro repository Git con le modifiche automaticamente. Qualcuno sa come questo può essere realizzato?

Una delle cose che stavo pensando era creare un plug-in che potesse ascoltare gli eventi di aggiornamento e commettere automaticamente le modifiche non appena l'hook viene attivato. Non sono sicuro se questo è l'approccio migliore.

Per favore fatemi sapere se qualcuno ha un modo migliore per farlo.

+1

In primo luogo, manterrei il core WordPress fuori da git - e anche plugin e temi di terze parti. Fai uso del compositore e porta tutto in questo modo. Hai ancora il problema se qualcuno aggiorna: non c'è un modo semplice per farlo correttamente per essere onesti. Ma il compositore ti renderà più facile mantenere un repository adeguato. L'unica cosa che salvo in git è il mio tema personalizzato e wp-config.php etc e tutto ciò che è stato modificato. https://roots.io/using-composer-with-wordpress/ è un buon punto di partenza. Non è necessario memorizzare altri file che sono già sotto controllo di versione da qualche altra parte –

+0

C'è un plugin Wordpress che integra git sotto wordpress: https://versionpress.net/ – Bipi

+0

@SimonPollard La domanda è come usare gli aggiornamenti automatici di WordPress se WordPress è sotto controllo di versione.Anche se non utilizzi Git, se stai utilizzando qualcosa come Composer, non puoi ancora utilizzare gli aggiornamenti automatici di WP. Con il metodo compositore, devi comunque andare sul server e aggiornare la dipendenza di WordPress. – Agop

risposta

3

Sembra che il problema sia che il pulsante "Aggiorna ora" attiva "aggiorna i file in produzione" che non fanno parte del repository git.

Tranne che potevano: il repository potrebbe avere il ramo master dedicato alla solita struttura ad albero WP come descritto in WordPress-Skeleton e un secondo ramo per monitorare le modifiche a quei file in produzione.

Since git 2.5, you can have multiple worktrees per repo (questa è la parte "fuori dalla scatola").
Ciò significa che è possibile dichiarare un'altra cartella (al di fuori del repository git originale) come un albero di lavoro dello stesso repository git.

Una volta che l'aggiornamento ha modificato "i file in produzione", un semplice git add -A; git commit è in grado di rilevare dette modifiche e confermarle (in un ramo dedicato).

+1

Questo parla del lato Git delle cose, ma in realtà non aiuta molto con il lato WordPress. Parte del problema è capire il modo migliore per eseguire il commit come parte degli aggiornamenti automatici di WordPress (senza andare manualmente dopo un aggiornamento ed eseguendo 'git add' e' git commit'). – Agop

+0

@Agop Capisco, ma il lato git doveva essere indirizzato. – VonC

0

Prima di tutto non si controlla la versione completa della cartella WP solo i temi e le cartelle di plug-in che non saranno interessati dall'aggiornamento. Quindi

+0

Perché questa risposta è downvoted? È corretto! I file e le cartelle WP fanno parte del processo di distribuzione non della sorgente! Se il tuo tema si basa su determinati plugin da installare, allora deve includere questi plugin all'interno della cartella dei temi oppure deve esserci una logica che richieda all'utente di installare detti plug-in. – Mario

Problemi correlati