ცოდნის ბაზა

ორმხრივი სინქრონიზაცია თქვენს GitHub საცავთან

თქვენს საიტზე შეტანილი ცვლილებები თქვენსავე რეპოზიტორიში კომიტებად იქცევა, ხოლო იქ გაგზავნილი მონაცემები თქვენს საიტზე აისახება. ის უფასოა და აი, რა ხდება მაშინ, როდესაც ორივე მხარე ერთდროულად იცვლება.

დააკავშირეთ თქვენი GitHub ანგარიში საიტთან და ჩვენ უზრუნველვყოფთ მათ ორმხრივ სინქრონიზაციას. ეს არის უფასო, გამორთულია მანამ, სანამ არ ჩართავთ, და ჩვენ ცვლილებებს ვინახავთ (commit) მხოლოდ იმ რეპოზიტორიაში, რომელიც თქვენს ანგარიშზეა — და არასდროს ჩვენსაზე.

რა სინქრონიზდება

ნებისმიერი ცვლილება, რომელსაც თქვენი საიტის ფაილებში შეიტანთ, ხდება commit თქვენს რეპოზიტორიაში, მიუხედავად იმისა, თუ როგორ შეცვალეთ იგი: ფაილების მენეჯერით, SFTP-ით, WordPress-ის თემის რედაქტორით თუ SSH სესიით. თქვენ არ გჭირდებათ ჩვენი გაფრთხილება — ჩვენ შევადრებთ თქვენს საიტს მის ბოლო commit-ს და გავაგზავნით (push) განსხვავებას.

მეორე მიმართულებით: თქვენს დაკავშირებულ შტოში (branch) გაგზავნილი ცვლილებები (push) აისახება საიტზე.

რას არ ვინახავთ (commit) არასდროს

თქვენი wp-config.php ამოღებულია სინქრონიზაციიდან, განზრახ და სამუდამოდ. ის შეიცავს თქვენი მონაცემთა ბაზის პაროლს და ავტორიზაციის გასაღებებს (salts), ხოლო მათ რეპოზიტორიაში ადგილი არ აქვთ — არც კი პირად (private) რეპოზიტორიაში, რადგან git ისტორიას სამუდამოდ ინახავს.

ასევე ამოღებულია: .env ფაილები, გასაღებები და სერტიფიკატები, თქვენი ატვირთვების საქაღალდე (uploads), ქეში და node_modules. რეპოზიტორია არის თქვენი საიტის საწყისი კოდი (source) და არა სარეზერვო ასლი (backup). მედია ფაილების ადგილი სარეზერვო ასლებშია, სადაც ისინი უკვე ინახება, ხოლო მათი აქ განთავსება შეანელებს ყოველ push-ს და ცვლილებებს წაუკითხავს გახდის.

რა ხდება, თუ ცვლილებები ორივე მხარეს შევიდა

ეს არის კითხვა, რომლის წაკითხვაც ღირს. დავუშვათ, თქვენ შეცვალეთ ფაილი ფაილების მენეჯერში, ხოლო ამასობაში კოლეგამ გააგზავნა ცვლილება (push) იმავე რეპოზიტორიაში.

ჩვენ ვჩერდებით. ჩვენ არ ვაერთიანებთ (merge) და არ ვწერთ არავის მონაცემებს თავზე. საიტის Deploy ჩანართი აჩვენებს "თქვენს რეპოზიტორიაში არის ცვლილებები, რომლებიც არ გვინახავს", მიგითითებთ commit-ზე, რომელიც უნდა გადაამოწმოთ, და ელოდება თქვენს ქმედებას. ლოდინისას არაფერი იკარგება არცერთ მხარეს — თქვენი რედაქტირებული ფაილი ისევ საიტზეა, ხოლო მათი commit ისევ რეპოზიტორიაშია.

შემდეგ თქვენ ირჩევთ:

  • ამ საიტის ფაილების შენარჩუნება — ჩვენ ვათავსებთ თქვენს ვერსიას მათ ვერსიაზე. მათი commit-ები რჩება ისტორიაში; არაფერი იშლება.
  • რეპოზიტორიის გამოყენება, საიტის ცვლილებების გაუქმება — რეპოზიტორიის ვერსია გამოიყენება საიტზე, ხოლო ცვლილებები, რომლებიც აქ შეიტანეთ, უქმდება. ეს ქმედება შეუცვლელია (destructive), რის გამოც ის მოითხოვს თქვენს გააზრებულ დაწკაპუნებას და არასდროს სრულდება ჩვენ მიერ თქვენ ნაცვლად.

განზრახ არ არსებობს "ავტომატური გაერთიანების" (merge) ოპცია. ჩვენ მიერ შესრულებული გაერთიანება შექმნიდა ფაილს აქტიურ საიტზე, რომელიც არცერთ თქვენგანს არ დაუწერია და წინასწარ არ უნახავს.

რატომ შეიძლება შეჩერდეს სინქრონიზაცია

  • თქვენ არ დაგიკავშირებიათ თქვენი GitHub ანგარიში. გადამრთველი გამორთული რჩება, სანამ ამას არ გააკეთებთ.
  • ის ელოდება თქვენს ქმედებას. იხილეთ ზემოთ — შეჩერება ავტომატურად არ იხსნება.
  • თქვენი ანგარიშის სტატუსი აქტიური არ არის. სინქრონიზაცია პაუზდება და ავტომატურად განახლდება, როდესაც ანგარიშსწორება მოწესრიგდება. არაფერი იკარგება.

Deploy ჩანართი აჩვენებს ბოლო რამდენიმე სინქრონიზაციას, მათ შორის იმასაც, სადაც არაფერი შეცვლილა. თუ ეს სიას ცარიელია და სინქრონიზაცია ჩართულია, სავარაუდოდ, დაკავშირებულ ანგარიშს არ აქვს რეპოზიტორიაში ჩაწერის უფლება — შეამოწმეთ მისი წვდომა და ხელახლა დააკავშირეთ.

სინქრონიზაციის პარამეტრების არჩევა

ნაგულისხმევად სინქრონიზდება მთელი საიტი. WordPress საიტზე ეს ჩვეულებრივ არ არის ის, რაც გსურთ: ეს ნიშნავს WordPress core-ის თითოეულ ფაილს, რომელიც თქვენ არ დაგიწერიათ და არ დაარედაქტირებთ. დააყენეთ "მხოლოდ ამ საქაღალდის სინქრონიზაცია" თქვენს თემაზე — მაგალითად wp-content/themes/my-theme — და დანარჩენი ხელუხლებელი დარჩება.

ისევ გაჭედილი ხართ?

მხარდაჭერა შედის ყველა გეგმაში და პასუხები თქვენს საკუთარ ენაზე გაიცემა.

მხარდაჭერასთან დაკავშირება ყველა სტატია