Conectați propriul cont GitHub la un site și vom menține cele două părți sincronizate în ambele direcții. Este gratuit, rămâne dezactivat până când îl porniți și efectuăm commit-uri doar într-un depozit de pe un cont pe care îl dețineți — niciodată pe unul al nostru.
Ce se sincronizează
Orice modificați în fișierele site-ului dumneavoastră devine un commit în depozitul dumneavoastră, indiferent de modul în care ați făcut modificarea: managerul de fișiere, SFTP, editorul de teme WordPress sau o sesiune SSH. Nu trebuie să ne anunțați — comparăm site-ul dumneavoastră cu ultimul său commit și transmitem diferența prin push.
În sens invers, un push către ramura dumneavoastră conectată ajunge pe site.
Ce nu trimitem niciodată prin commit
Fișierul dumneavoastră wp-config.php este exclus, deliberat și definitiv. Acesta conține parola bazei de date și cheile unice de autentificare (salts), iar acestea nu au ce căuta într-un depozit — nici măcar într-unul privat, deoarece git păstrează istoricul pentru totdeauna.
De asemenea, sunt excluse: fișierele .env, cheile și certificatele, dosarul de încărcări, cache-urile și node_modules. Un depozit este sursa site-ului dumneavoastră, nu o copie de rezervă. Fișierele media își au locul în copiile dumneavoastră de rezervă, unde sunt deja păstrate, iar adăugarea lor aici ar face ca fiecare operațiune de push să devină lentă și fiecare modificare să fie ilizibilă.
Ce se întâmplă dacă ambele părți au suferit modificări
Aceasta este întrebarea care merită citită. Să presupunem că editați un fișier în managerul de fișiere, iar între timp un coleg transmite prin push o modificare în același depozit.
Ne oprim. Nu facem îmbinare (merge) și nu suprascriem munca nimănui. Fila Deploy a site-ului afișează „Depozitul dumneavoastră conține modificări pe care nu le-am văzut”, indică commit-ul pe care trebuie să îl verificați și vă așteaptă decizia. Nimic nu se pierde de nicio parte în timpul acestei așteptări — modificarea dumneavoastră este încă pe site, iar commit-ul colegului este încă în depozit.
Apoi alegeți:
- Păstrați fișierele acestui site — punem versiunea dumneavoastră peste a lor. Commit-urile lor rămân în istoric; nimic nu este șters.
- Utilizați depozitul, renunțați la modificările de pe site — versiunea din depozit este aplicată pe site, iar modificările pe care le-ați făcut aici sunt anulate. Această acțiune este distructivă, motiv pentru care necesită un clic deliberat și nu este niciodată ceva ce facem în numele dumneavoastră.
Nu există o opțiune de „îmbinare automată”, în mod intenționat. O îmbinare efectuată de noi ar genera un fișier pe care niciunul dintre dumneavoastră nu l-a scris, direct pe un site live, fără ca vreunul dintre dumneavoastră să îl fi văzut în prealabil.
De ce s-ar putea opri sincronizarea
- Nu v-ați conectat propriul cont GitHub. Comutatorul rămâne oprit până când faceți acest lucru.
- Așteaptă o acțiune din partea dumneavoastră. Vedeți mai sus — o stare de așteptare nu se rezolvă de la sine.
- Contul dumneavoastră nu are o situație financiară bună. Sincronizarea este întreruptă și se reia automat odată ce plățile sunt la zi. Nimic nu se pierde.
Fila Deploy afișează ultimele sincronizări, inclusiv cele în care nu s-a schimbat nimic. Dacă lista respectivă este goală și sincronizarea este activată, cel mai probabil contul conectat nu are permisiuni de scriere în depozit — verificați accesul acestuia și reconectați-vă.
Selectarea elementelor care se sincronizează
În mod implicit, întregul site se sincronizează. Pe un site WordPress, de obicei nu este ceea ce doriți: înseamnă fiecare fișier din nucleul WordPress, pe care nu l-ați scris și nu îl veți edita. Setați „Sincronizează doar acest dosar” la tema dumneavoastră — de exemplu wp-content/themes/my-theme — iar restul rămâne neatins.