কীভাবে আপনার ওয়েব হোস্টে "গিট পুশ" আপডেট ফাইল করবেন?


13

আমার কয়েকটি সাইট রয়েছে যা ভাগ করে নেওয়া হোস্টিংয়ের আওতায় একই ওয়েব হোস্টিং পরিষেবাদিতে সমস্ত হোস্ট করা হয়। আমার ওয়েব হোস্ট গিটকে সমর্থন করে এবং এতে আমার এসএসএইচ অ্যাক্সেস রয়েছে এবং আমার ল্যাপটপেও গিট সেটআপ রয়েছে।

আমি এটি তৈরি করতে চাই যাতে আমি যখন "গিট পুশ অরিজিন মাস্টার" করি, এটি স্বয়ংক্রিয়ভাবে আমার ওয়েব সার্ভারে ফাইলগুলি আপডেট করবে এবং পূর্ববর্তী কমিটের ফাইলগুলির একটি ব্যাকআপ সংরক্ষণ করবে যাতে আমি চাইলে সহজেই রোলব্যাক করতে পারি। এটা কি সম্ভব?


কৌতুহলী- আপনার হোস্টিং সরবরাহকারী কে?
ব্যবহারকারী

এবং আপনি কেন "পূর্ববর্তী অঙ্গীকারের ফাইলগুলির ব্যাকআপ" চান? আপনি যদি পিছনে রোল করতে চান তবে আপনি কেবল পূর্বের প্রতিশ্রুতিটি ঠেলে দিতে পারেন (ধরে নিলেন আপনি সর্বদা জানেন কী আপনি শেষ করেছেন - তবে যাইহোক আপনার এটি জানা উচিত)।
স্লেসকে

উত্তর:


12

এটি একটি ওয়েবসাইট পরিচালনা করতে গিট ব্যবহার থেকে সংক্ষিপ্তসারিত হয়

প্রক্রিয়াটির মূলটি হ'ল সার্ভার সাইড হুক 'পোস্ট-রিসিভ' (গিট কাস্টমাইজিং গিট - গিট হুকস এবং গিথুকস ম্যান পৃষ্ঠাতে গিট হুক সম্পর্কিত আরও কিছু )। সার্ভারের সমস্ত ডেটা পাওয়ার পরে এই হুকটি চলে।

সার্ভারটি ডেটা গ্রহণ করার পরে, এটি git checkout -f -f বিকল্পটি চালায় তবে স্থানীয় পার্থক্য থাকলেও মাথায় চেকআউট চাপিয়ে দেবে।

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f

রাখুন যে hooks/ডিরেক্টরির যেমন post-receiveএবং এক্সিকিউটেবল। অবশ্যই, আপনার ওয়েবসার্ভারের ফাইলগুলি যেখানে রয়েছে সেখানে পথটি পরিবর্তিত হয় ( GIT_WORK_TREEপরিবেশের পরিবর্তনশীল সেটগুলির ব্যবহার যাতে আপনার সার্ভারে ডট ফাইল এবং গিট সেটিংসের জাগল দরকার না হয়)।

পিছনে ঘুরানোর জন্য, প্রত্যেককে প্রতিটি রিলিজ ট্যাগ করা উচিত (এটি পোস্ট-কমিট হুকের অংশ হিসাবেও করা যেতে পারে)। রিলিজ ট্যাগ করে কোনও সহজেই স্পটটিকে রোলব্যাকে সনাক্ত করতে পারে, যদিও এটির মধ্যে সম্ভবত সার্ভারে লগ ইন করা এবং সেই ট্যাগটি পরীক্ষা করা জড়িত।


এটি লক্ষ করা উচিত যে এর অর্থ আপনি গিটকে একটি ডিপ্লোয়মেন্ট সরঞ্জাম হিসাবে ব্যবহার করছেন যা এটি এমন কিছু যা সত্যিকার অর্থে নয়। এটি কাজ করতে পারে, তবে এখানে অনেকগুলি সীমাবদ্ধতা রয়েছে (পুরো রেপো ডাউনলোড করার দরকার নেই, স্ক্রিপ্টগুলি চালাবার বা ফাইল অনুমতি পরিচালনা করার কোনও উপায় নেই, জিনিসগুলি আনপ্যাক করার কোনও উপায় নেই)। যথাযথ স্থাপনার সরঞ্জামটি ব্যবহার করা ভাল।
স্লেসকে

@ সেলসেক আপনি post-receiveহুকের মধ্যে যা কিছু করতে পারেন, এটি সত্যিই কেবল একটি স্ক্রিপ্ট যেখানে আপনি যা চান সেখানে রাখতে পারেন।
মারিও

@ মারিও: হ্যাঁ, আপনি পারবেন - যার অর্থ আপনি পোস্ট-রিসিভ হুক হিসাবে কার্যকরভাবে নিজের স্থাপনার সমাধানটি কার্যকর করছেন। বিদ্যমান সমাধানটি ব্যবহার করার জন্য এখনও অনেক সুবিধা রয়েছে তবে কখনও কখনও আপনার নিজেরাই সবচেয়ে ভাল হতে পারে ...
স্লেসকে

আপনার ওয়েব ফোল্ডারে .git ফাইলগুলি এড়াতে আপনি এমনকি একটি মধ্যবর্তী ফোল্ডারে চেকআউট করতে পারেন এবং ওয়েব ফোল্ডার থেকে অন্তর্বর্তী ফোল্ডারে লিঙ্ক রাখতে পারেন।
বাঁকানো

0

আপনি যে ধরণের সংগ্রহের দিকে ধাক্কা খাচ্ছেন তার কার্যকরী ট্রি আপডেট করার সহজ উপায়টি হ'ল git config receive.denyCurrentBranch updateInstead রিসিভারের দিকে সেট করা। Https://git-scm.com/docs/git-config/#git-config-recepdenyC ચાલુ ব্রাঞ্চ দেখুন

পোস্ট কমিট হুক সহ রায়ের উত্তরটি আরও ভাল যে এটি কিছু আলাদা জায়গায় যাচাই করতে দেয় (আপনি সম্ভবত আপনার ওয়েব ফোল্ডারে .git রাখতে চান না)। তবে এই স্তরে, কিছু বিদ্যমান ডিপ্লোয়মেন্ট সরঞ্জাম ব্যবহার করা ভাল ধারণা হতে পারে, যেমন স্লেস্ক মন্তব্যে বলেছিলেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.