একক-বিকাশকারী জিআইটি কার্যপ্রবাহ (সোজা এফটিপি থেকে সরানো)


11

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

এই মুহুর্তে আমি সাধারণত একটি লাইভ সার্ভারে কাজ করি। আমি এফটিপি প্রবেশ করি, আমার সম্পাদনাগুলি তৈরি করে সেভ করে রাখি, তারপরে পুনরায় আপলোড করুন এবং রিফ্রেশ করুন। সম্পাদনাগুলি সাধারণত সিএমএসের জন্য থিম / প্লাগইন ফাইলগুলিতে হয় (যেমন কংক্রিট 5 বা ওয়ার্ডপ্রেস)। এটি ভালভাবে কাজ করে তবে কোনও ব্যাকআপ এবং সংস্করণ নিয়ন্ত্রণ সরবরাহ করে না।

আমি ভাবছি যে এই পদ্ধতিতে ভিসিএসকে কীভাবে একীভূত করা যায়। আমি কোম্পানির ওয়েব সার্ভারে একটি গিট সার্ভার স্থাপনের কল্পনা করব, তবে ক্লায়েন্ট অ্যাকাউন্টগুলিতে (সাধারণত একই সার্ভারে ভিপিএস) পরিবর্তনগুলি কীভাবে ঠেকানো যায় তা আমি পরিষ্কার করছি না - এই মুহুর্তে আমি কেবল তাদের বিবরণ দিয়ে এসএফটিপিতে লগ ইন করব এবং তৈরি করব সরাসরি পরিবর্তন।

আমিও নিশ্চিত নই কি সংবেদনশীলভাবে কোনও সংগ্রহস্থলের প্রতিনিধিত্ব করবে - প্রতিটি ক্লায়েন্টের ওয়েবসাইট কি তাদের নিজস্ব একটি পেতে পারে?

যে কোনও অন্তর্দৃষ্টি বা অভিজ্ঞতা সত্যই সহায়ক হবে। আমি মনে করি না যে আমার কোনও উপায়ে গিটের পূর্ণ ক্ষমতা প্রয়োজন, তবে মৌলিক সংস্করণ নিয়ন্ত্রণ এবং ডি ফ্যাক্টো মেঘ অ্যাক্সেসটি সত্যিই দরকারী।

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

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

আমি মনে করি ভারসাম্য বজায় রেখে আমি # 1 টি বিকল্প যাব এবং আমি কীভাবে এগিয়ে যাব তা দেখুন।


1
গিট (বা অন্য কোনও বিতরণকৃত ভিসিএস) সম্পর্কে মনে রাখার বিষয়টি হ'ল সমস্ত সংগ্রহস্থল কমপক্ষে প্রযুক্তিগতভাবে পিয়ার: আপনার স্থানীয় সংগ্রহস্থলটি সরাসরি সার্ভারে থাকা "বাস্তব" বা ব্যাকআপ সংগ্রহস্থলের মতোই। এটি আপনার কার্যপ্রবাহের নীতি যা তাদের কাঠামো দেয় - তাই যদি আপনি সত্যিই লাইভ সার্ভারে প্রাথমিক কাজ চালিয়ে যেতে চান তবে আপনি পারেন ...
আগত 21

ধন্যবাদ, এটা জেনে রাখা ভাল। গীটের অন্তর্নিহিত নমনীয়তা একটি 'সেরা অনুশীলন' শুরুর পয়েন্টটি কার্যকর করা শক্ত করে তোলে - এটি অভিজ্ঞ ব্যবহারকারীর পিওভি থেকে একটি শক্তি কিন্তু একটি নোবস থেকে তর্কযোগ্য দুর্বলতা!
melat0nin

উত্তর:


3

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

আমি নিশ্চিত যে এটি পরিচালনার অন্যান্য উপায় আছে তবে আমি এটি বেশ সহজবোধ্য বলে মনে করি এবং আমি ঠিক আপনার মতো একই পরিস্থিতিতে আছি: একটি ছোট সংস্থায় একক বিকাশকারী (৪ জন)।


1
আপনার উত্তর দেওয়ার জন্য ধন্যবাদ! এর অর্থ কী আপনি নিজের স্থানীয় মেশিনে স্ন্যাপশটটি টানছেন, পরিবর্তনগুলি করেছেন এবং প্রতিশ্রুতিবদ্ধ করেন, তবে লাইভ সার্ভার থেকে একটি অনুরোধ করবেন (এসএসএইচিং ইন)? সত্যিই যদি পরিবর্তনটি ছোট হয়? আপনি কি উন্নয়নের জন্য স্থানীয় ওয়েব সার্ভার চালান? (সাধারণ সিএসএস পরিবর্তনের জন্য আমি এই প্রক্রিয়াটি পেরে উঠতে পারি নি ... আমি পাগল হয়ে যাব!)
melat0nin

1
একটি সামান্য সিএসএস পরিবর্তনের জন্য আমি সরাসরি সার্ভারে পরিবর্তনটি করব এবং তারপরে সার্ভার থেকে সংগ্রহস্থলগুলিতে সেই পরিবর্তনটি সম্পাদন করব। যখন আমাকে সাইটে আরও গুরুতর পরিমাণে কাজ করতে হবে তখন আমি আমার ডিভাইসটিতে সাইটের সর্বশেষতম সংস্করণটি সংগ্রহস্থল থেকে আপডেট করব। আমি অনুমান করি যে আপনি যতক্ষণ পরিবর্তনটি (সার্ভার বা ডেভ মেশিন) তৈরি করবেন যতক্ষণ আপনি এটি সংরক্ষণাগারে প্রতিশ্রুতিবদ্ধ না সে বিষয়ে কিছু আসে যায় না।
ZweiBlumen

সুতরাং আপনি কি জন্য এই সরঞ্জাম ব্যবহার করবেন? সরাসরি সার্ভারে ফাইল পরিবর্তন করার জন্য এফটিপি, তারপরে একটি এসএসএইচ সেশনটি গিটার সার্ভারে কমিট করার জন্য ব্যাকগ্রাউন্ডে খোলা আছে?
melat0nin

1
হ্যাঁ, এটি মূলত এটি। আসলে আমি সাবভারশন ব্যবহার করি। আমাদের উইন্ডোজের পাশাপাশি লিনাক্স সার্ভারেও সাইট রয়েছে। উইন্ডোজ আইতে তাদের রিমোট ডেস্কটপে সিএসএস পরিবর্তন করুন এবং কচ্ছপ এসভিএন ব্যবহার করে প্রতিশ্রুতিবদ্ধ। লিনাক্সে আমি একটি এসএসএইচ অধিবেশন ব্যবহার করি এবং পরিবর্তনগুলি করতে vim ব্যবহার করি (তবে আপনি আমার ধারনা পরিবর্তনগুলিও এফটিপি করতে পারেন)।
ZweiBlumen

আমি সার্ভারে আপনার সম্পাদনা করার পরামর্শটি দিয়ে চলেছি তারপর সেখান থেকে এসএসএইচ এর মাধ্যমে প্রতিশ্রুতিবদ্ধ যা আমি কয়েক দিন ধরে করছি। সত্যিই ভাল কাজ মনে হচ্ছে, ধন্যবাদ!
melat0nin

2

আপনি কোনও নির্দিষ্ট শাখায় চাপ দিলে ওয়েব সার্ভার ডেটা ডিরেক্টরিটি স্বয়ংক্রিয়ভাবে আপডেট হয় ( সুরক্ষার কারণে রফতানি করা পছন্দ করা হয়) যা একটি post-updateহুক তৈরি করা বরং সহজ git archive

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


1

আমি এই পদক্ষেপগুলি অনুসরণ করব:

  1. রিমোট পুশ / টানার জন্য উপযুক্ত সরকারী / বেসরকারী কী জুটির সাহায্যে রিমোট সার্ভার সেট আপ করুন
  2. দুটি শাখা পরীক্ষা করে ছেড়ে দিন
  3. পরীক্ষার শাখায় একটি পরীক্ষার পরিবেশের সাথে স্থানীয়ভাবে বিকাশ করুন
  4. আপনি যখন খুশি হন তখন রিলিজ শাখায় মার্জ করুন এবং রিমোট সার্ভারে চাপ দিন
  5. রিলিজের সর্বশেষ সংস্করণে আপডেট করতে রিমোট সার্ভারে হুক করুন

একে অপরকে গোলমাল করা থেকে বিরত রাখতে প্রতি ওয়েবসাইটের জন্য একটি রেপো সেট আপ করুন। পৃথক শাখাগুলি আপনাকে বর্তমানে "ভাল" সংস্করণ লকটি আপনি বর্তমানে কীভাবে কাজ করছেন তার দিকে ধাপে এড়াতে দেয়, যা কাজ করতে পারে বা নাও পারে।


সুতরাং আমি কি সঠিকভাবে বুঝতে পারি - গিটের জন্য দুটি সার্ভার (1), (2) লাইভ ওয়েবসারভার এবং একটি স্থানীয় বিকাশ মেশিন রয়েছে। দেব স্থানীয়ভাবে সম্পন্ন হয় তারপর গিট সার্ভারে ধাক্কা দেয় যা লাইভ সার্ভার আপডেট করার জন্য একটি হুক আছে?
melat0nin

@ melat0nin এটি করার এক উপায়। আপনি গিট সার্ভার থেকে ক্রোন জব হিসাবে লাইভ সার্ভারটি টানতে পারেন। অথবা, আপনার কাছে 2 টি মেশিন থাকতে পারে। স্থানীয় ডেভ মেশিন এবং লাইভ প্রোডাকশন ওয়েব সার্ভার। এই ভাবে, ডিপ মেশিন থেকে রেপোটিকে প্রেশাকশন মেশিনে ঠেলে নতুন রিলিজ শাখায় আপডেট করা হয় যখনই আপনি চাপ দিন।
স্পেনসার রথবুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.