একটি সাইটের সাথে আপনার নিজস্ব GitHub অ্যাকাউন্ট সংযুক্ত করুন এবং আমরা উভয় দিকে দুটিকে সামঞ্জস্যপূর্ণ রাখব। এটি বিনামূল্যে, আপনি চালু না করা পর্যন্ত এটি বন্ধ থাকে এবং আমরা সর্বদা কেবল আপনার নিজস্ব অ্যাকাউন্টের একটি রিপোজিটরিতে কমিট করি — কখনোই আমাদের কোনোটিতে নয়।
কী সিঙ্ক হয়
আপনি আপনার সাইটের ফাইলগুলিতে যা কিছু পরিবর্তন করেন তা আপনার রিপোজিটরিতে একটি কমিট হয়ে যায়, আপনি যেভাবে পরিবর্তন করুন না কেন: ফাইল ম্যানেজার, SFTP, WordPress থিম এডিটর, বা একটি SSH সেশন। আপনাকে আমাদের জানাতে হবে না — আমরা আপনার সাইটটিকে এর সর্বশেষ কমিটের সাথে তুলনা করি এবং পার্থক্যটি পুশ করি।
অন্য দিকে, আপনার সংযুক্ত ব্রাঞ্চে একটি পুশ সাইটে চলে আসে।
আমরা যা কখনোই কমিট করি না
আপনার wp-config.php ইচ্ছাকৃতভাবে এবং স্থায়ীভাবে বাদ দেওয়া হয়েছে। এতে আপনার ডাটাবেসের পাসওয়ার্ড এবং আপনার প্রমাণীকরণ সল্ট থাকে এবং সেগুলি কোনও রিপোজিটরির অন্তর্ভুক্ত নয় — এমনকি কোনও প্রাইভেট রিপোজিটরিতেও নয়, কারণ git চিরকালের জন্য ইতিহাস সংরক্ষণ করে।
এছাড়াও বাদ দেওয়া হয়েছে: .env ফাইল, কী এবং সার্টিফিকেট, আপনার আপলোড ফোল্ডার, ক্যাশ এবং node_modules। একটি রিপোজিটরি হল আপনার সাইটের সোর্স, ব্যাকআপ নয়। মিডিয়া আপনার ব্যাকআপের অন্তর্ভুক্ত, যেখানে এটি ইতিমধ্যেই রাখা আছে, এবং এটিকে এখানে রাখলে প্রতিটি পুশ ধীরগতির হবে এবং প্রতিটি পরিবর্তন অপাঠ্য হবে।
উভয় দিকে পরিবর্তন হলে কী ঘটে
এটি পড়ার মতো প্রশ্ন। ধরুন আপনি ফাইল ম্যানেজারে একটি ফাইল এডিট করছেন এবং ইতোমধ্যে একজন সহকর্মী একই রিপোজিটরিতে একটি পরিবর্তন পুশ করেছেন।
আমরা থামি। আমরা মার্জ করি না এবং আমরা কারও ডেটা ওভাররাইট করি না। সাইটের Deploy ট্যাবটি দেখায় "Your repository has changes we haven't seen", আপনি যে কমিটটি দেখতে চান তার নাম দেয় এবং আপনার জন্য অপেক্ষা করে। এটি অপেক্ষা করার সময় কোনও পক্ষেই কিছুই নষ্ট হয় না — আপনার এডিট এখনও সাইটে রয়েছে, তাদের কমিট এখনও রিপোজিটরিতে রয়েছে।
তারপর আপনি নির্বাচন করুন:
- Keep this site's files — আমরা আপনার সংস্করণটি তাদের সংস্করণের উপরে রাখি। তাদের কমিট ইতিহাসে থেকে যায়; কিছুই মুছে ফেলা হয় না।
- Use the repository, discard site changes — রিপোজিটরির সংস্করণটি সাইটে প্রয়োগ করা হয় এবং আপনি এখানে যে পরিবর্তনগুলি করেছিলেন তা বাতিল করা হয়। এটি একটি ধ্বংসাত্মক পদক্ষেপ, যার কারণেই এটি একটি ইচ্ছাকৃত ক্লিক এবং আমরা কখনোই আপনার পক্ষ থেকে এটি করি না।
উদ্দেশ্যমূলকভাবেই কোনও "merge automatically" বিকল্প নেই। আমাদের দ্বারা সম্পাদিত একটি মার্জ এমন একটি ফাইল তৈরি করবে যা আপনার কেউই লেখেনি, একটি লাইভ সাইটে, আপনাদের কেউই এটি প্রথমে না দেখে।
কেন সিঙ্ক বন্ধ হতে পারে
- আপনি আপনার নিজস্ব GitHub অ্যাকাউন্ট সংযুক্ত করেননি। আপনি সংযুক্ত না করা পর্যন্ত সুইচটি বন্ধ থাকে।
- এটি আপনার জন্য অপেক্ষা করছে। উপরে দেখুন — একটি হোল্ড নিজে থেকে পরিষ্কার হয় না।
- আপনার অ্যাকাউন্ট সঠিক অবস্থায় নেই। বিলিং আপ টু ডেট হলে সিঙ্কিং বিরতি নেয় এবং নিজে থেকেই আবার শুরু হয়। কিছুই নষ্ট হয় না।
Deploy ট্যাবটি শেষ কয়েকটি সিঙ্ক দেখায়, যার মধ্যে এমনগুলিও অন্তর্ভুক্ত রয়েছে যেখানে কিছুই পরিবর্তন হয়নি। যদি সেই তালিকাটি খালি থাকে এবং সিঙ্ক চালু থাকে, তবে সংযুক্ত অ্যাকাউন্টটি সম্ভবত রিপোজিটরিতে লিখতে পারে না — এর অ্যাক্সেস পরীক্ষা করুন এবং পুনরায় সংযোগ করুন।
কী সিঙ্ক হবে তা নির্বাচন করা
ডিফল্টভাবে পুরো সাইটটি সিঙ্ক হয়। একটি WordPress সাইটে এটি সাধারণত আপনি যা চান তা নয়: এর অর্থ হল WordPress কোরের প্রতিটি ফাইল, যা আপনি লেখেননি এবং এডিট করবেন না। আপনার থিমের জন্য "Sync only this folder" সেট করুন — উদাহরণস্বরূপ wp-content/themes/my-theme — এবং বাকি অংশটি অপরিবর্তিত রাখা হয়।