কনফিগারেশন ফাইল সংস্করণ নিয়ন্ত্রণের জন্য গিট ব্যবহার করা কি ভাল ধারণা?


18

আমি জেন্টু লিনাক্স ব্যবহার করি এবং এটির পরিবর্তে জটিল কনফিগারেশন রয়েছে। আমার প্রশ্নটি কি আমার কনফিগারেশন ফাইলগুলি নিয়ন্ত্রণ করে সংস্করণটির জন্য গিট ব্যবহার করা বুদ্ধিমানের কাজ?

আমার বাড়িতে কিছু গিট রেপো রয়েছে, আমার ধারণা আমি যদি আমার .gitignore এ / home / ** রাখি তবে তারা সমস্যার কারণ হবে না।

স্পষ্টকরণ আপডেট:

"/" রুট ডিরেক্টরিতে আমার সিস্টেম স্তরের কনফিগারেশন ফাইলগুলিকে সংস্করণে নিয়ন্ত্রণ করতে গিট ব্যবহার করা কি বুদ্ধিমান পদ্ধতি?


@ অ্যান্থনি জিওগেইগান আমি আমার "/" মূল ডিরেক্টরিটি ট্র্যাক করতে চাই যা ভবিষ্যতে আকর্ষণীয় পরিণতির কারণ হতে পারে তাই সংযুক্ত থ্রেডটি কেবল আমার প্রশ্নের আংশিক উত্তর দেয়। অন্য অংশ: আমার কনফিগারেশন ফাইলগুলি এখনও
अनुत्तरিত

1
@ অ্যান্থনি জিওগেন ধন্যবাদ। আমি প্রশ্ন আপডেট।
atevm

উত্তর:


19

আপনার প্রশ্নের সংক্ষিপ্ত উত্তর হ্যাঁ


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

ব্যক্তিগতভাবে, আমি /রুট ডিরেক্টরিতে সমস্ত ফাইল ট্র্যাকিং থেকে সতর্ক থাকব । উপেক্ষা করার পাথের তালিকাটি বড় এবং অস্বাস্থ্যকর হয়ে উঠতে পারে। আমি ফাইলগুলির প্রতিটি লজিকাল সেট তাদের নিজস্ব সংগ্রহস্থলে রাখতে পছন্দ করি।

আমি ব্যক্তিগতভাবে আমার ব্যক্তিগত কনফিগারেশন / স্টার্ট-আপ ফাইলগুলি, যেমন, ভিম কনফিগারেশন, বাশ ফাংশন, উপকরণ ইত্যাদির ট্র্যাক রাখতে গিটকে ম্যানুয়ালি ব্যবহার করি - গিটের সাথে কীভাবে হোম ট্র্যাক করতে হবে সেই তালিকাভুক্ত পদ্ধতির অনুরূপ । আমি ফাইলগুলির প্রতিটি সেট তাদের নিজস্ব ভান্ডারে রাখি এবং হোম ডিরেক্টরিতে প্রতীকী লিঙ্কগুলি ব্যবহার করি।

জন্য সিস্টেম কনফিগারেশন ফাইল, আমি সঙ্গে গীত ব্যবহার Etckeeper আমার ফাইল ট্র্যাক রাখতে /etcডিরেক্টরি।

অপূর্ণতা

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

Etckeeper

এটকিপারটি / ইত্যাদি ক্ষেত্রে পরিবর্তনের পুরো ইতিহাস রাখতে ব্যবহার করা যেতে পারে। ফাইল মেটাডেটা যে সংস্করণ কন্ট্রোল সিস্টেম স্বাভাবিকভাবে সমর্থন করি না ট্র্যাক করে, কিন্তু যে জন্য গুরুত্বপূর্ণ /etcএমন অনুমতি হিসাবে, /etc/shadow

এটি প্যাকেজ পরিচালকদের যেমন এপ্ট এবং ইয়াম এবং এটির (এটির ডিফল্ট কনফিগারেশনে) হুক করে, প্রাক-এবং উত্তরোত্তর ইনস্টলেশন চালায় যাতে সমস্ত পরিবর্তনগুলি /etcট্র্যাক করা যায়।

যদি কোনও প্যাকেজ ইনস্টল করা বা অপসারণ করা হয় তবে প্যাকেজ ক্রিয়াকলাপের আগে / ইত্যাদিতে সমস্ত আপত্তিজনক পরিবর্তনগুলি করা হবে যাতে দুটি কমিট থাকে:

  1. "ইয়ম রান করার আগে / ইত্যাদি ক্ষেত্রে অনির্দিষ্ট পরিবর্তনগুলি সংরক্ষণ করা"
  2. "ইয়ম রান করার পরে / ইত্যাদিতে পরিবর্তন করা"

আমি এটি ডেবিয়ান এবং রেড হ্যাট-ভিত্তিক বিতরণগুলির সাথে ব্যবহার করেছি এবং আমি জানি এটি আর্ক প্যাকেজ পরিচালনা সমর্থন করে। আমি বলতে পারি না এটি জেন্টু সিস্টেমে কতটা অটোমেশন যুক্ত করবে তবে এটির জন্য একটি প্যাকেজ উপলব্ধ

এটি কনফিগারেশন ফাইলগুলিকে দূরবর্তী সংগ্রহস্থলের দিকে ঠেলাও সমর্থন করে (যা অবশ্যই ব্যক্তিগত হওয়া উচিত)।

কনফিগারেশন

প্যাকেজ ইনস্টল করার পরে আপনার এটি ( /etc/etckeeper/etckeeper.conf) উদাহরণস্বরূপ, কনফিগার করার প্রয়োজন হতে পারে , যেমন উবুন্টু সিস্টেমে ডিফল্ট সংস্করণ নিয়ন্ত্রণ ব্যবস্থাটি গিট থেকে বাজারে পরিবর্তন করা হয়। আপনি দৈনিক অটো-কমিটগুলি অক্ষম করতেও পছন্দ করতে পারেন ।

দৈনিক অটোমোম্যাটস

দৈনিক ক্রোন জব দ্বারা পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ হতে পারে । এটি বিরক্তিকর হতে পারে কারণ একাধিক স্বয়ংক্রিয় প্রতিশ্রুতি বার্তাগুলির সাহায্যে সংগ্রহশালা বিশৃঙ্খলা পেতে পারে।

আমি যথাযথ লাইন এটিকে অসম্পূর্ণ করে /etc/etckeeper/etckeeper.conf:

sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf

নির্দিষ্ট ফাইল উপেক্ষা করুন

/etc/.gitignoreট্র্যাক করা উচিত নয় এমন কোনও ফাইল নির্দিষ্ট করতে সম্পাদনা করুন ।

প্রথম রান

কনফিগার করার পরে, নিম্নলিখিত কমান্ডগুলি চালনা করুন:

sudo etckeeper init
sudo etckeeper commit "Initial commit"

যদি আপনার বর্তমান ডিরেক্টরিটি থাকে তবে etcআপনি নিয়মিত gitকমান্ড চালাতে পারেন , যেমন,

sudo git status
sudo git log

1
বাহ, এটি খুব দরকারী এবং বিশদ ছিল ... আপনাকে ধন্যবাদ :)
atevm

কেবল একটি খুব লিখিত উত্তর আপডেট করতে : etckeeperদৈনিক প্রতিশ্রুতি দেওয়ার সময় প্রথমে প্রথমে /etc"অপরিষ্কার" কিনা তা পরীক্ষা করা হবে , অর্থাত্ এতে অনিচ্ছাকৃত ফাইল রয়েছে। যদি তা না হয় তবে তা প্রতিশ্রুতি দেয় না। সুতরাং যদি আপনার প্রতিশ্রুতিবদ্ধ লগটি প্রতিদিনের .*ignore
কমিটে

এছাড়াও, উবুন্টুতে এটি অবিলম্বে একটি bzr init--__-- সম্পাদন করার এই অদ্ভুত প্রবণতা রয়েছে ... আমি সবসময়etckeeper uninit -f ইনস্টলেশনের পরে চালানোর পরামর্শ দিই ।
পেপলুয়ান

দ্রষ্টব্য, যে ইত্যাদি কিপার স্পষ্টতই গিথুব এ হোস্ট করা হয় না। তারা এখন তাদের হোমপেজে নিজস্ব সিস্টেম ব্যবহার করে। সম্ভবত লেখকের পক্ষে কিছুটা দূরে। ব্যক্তিগতভাবে আমি দেখতে পেয়েছি যে একটি দুর্ভাগ্যজনক সিদ্ধান্ত হিসাবে আপনি এখন সহজেই সমস্যার প্রতিবেদন করতে পারবেন না এবং প্রকল্পটি কতটা জনপ্রিয় তা দেখতে পাচ্ছেন না।
মাইকেল হার্টল

ধন্যবাদ @ মাইকেলহর্টল আমি গিটহাব রেপোর পুরানো লিঙ্কটি সরিয়েছি।
অ্যান্টনি জিওগেইগান

3

আমি আমার হোম ডিরেক্টরিটির নির্দিষ্ট ক্ষেত্রগুলি ট্র্যাক করতে গিট ব্যবহার করি। ব্যক্তিগতভাবে, আমি মূল ডিরেক্টরিটি ট্র্যাক করার পথে যাত্রা করব না, তবে আমি অবশ্যই বলব যে আমি আপনার উচ্চাকাঙ্ক্ষাকে প্রশংসা করি। :)

সম্ভবত অভিজ্ঞতার এই সংগ্রহটি আপনাকে কী কী ক্ষেত্রে প্রবেশ করতে পারে তার একটি ভাল ধারণা সরবরাহ করতে পারে:

লিনাক্স রুট ডিরেক্টরি 3 :) এ গিট সংগ্রহস্থল শুরু করার প্রভাব

কোনও মন্তব্যে কেবলমাত্র লিঙ্কটি ছুঁড়ে ফেলার পরিবর্তে "উত্তরের" জন্য ক্ষমা চান; যাইহোক, যথেষ্ট প্রতিনিধি না, তবে চিম ইন করতে ইচ্ছুক।

সম্পাদন করা

কি দারুন! @ অ্যান্টনি জিওগেন দ্বারা খুব সুন্দর উত্তর। আমি বিশ্বাস করি এটি এতটা সংগ্রাম নয় যতটা আমি প্রাথমিকভাবে কল্পনা করেছি।


0

আমি gitআমার সংরক্ষণ এবং বজায় রাখতেও ব্যবহার করি dotfilesতবে একটিতে git bare repository। একটি বিস্তারিত গাইড এখানে পাওয়া যাবে । আমি দুটি সংগ্রহস্থল ব্যবহার করছি, একটি আমার ব্যবহারকারী ডটফাইলের myconfজন্য এবং একটিতে মূলের ডটফিলের জন্য rootconf

অতিরিক্ত হিসাবে আপনি অনেকগুলি মেশিনে, বিভিন্ন লিনাক্স বিতরণ বা ভার্চুয়াল মেশিনে উভয় কনফিগারেশন ব্যবহার করতে পারেন: একটি স্বতন্ত্র কনফিগারেশনের জন্য কেবল একটি নতুন শাখা তৈরি করুন। তারপরে আপনি একই ফাইলটিতে কোড মিশ্রণ এড়াতে পারবেন (উদাঃ .bash_alias): বর্তমান মেশিনটিকে আর পরীক্ষা করতে হবে কিনা বিরক্তিকর নয়; কোন লিঙ্কের প্রয়োজন নেই!

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