গিট একটি বিতরণযোগ্য সংস্করণ নিয়ন্ত্রণ সিস্টেম, সুতরাং আপনাকে "পুশ ডেট" বলতে কী বোঝাতে হবে তা যত্ন সহকারে নির্ধারণ করতে হবে। উদাহরণস্বরূপ, ধরুন যে ব্যবহারকারী এ ব্যবহারকারীর বি এর সংগ্রহস্থলের প্রতি কিছু প্রতিশ্রুতিবদ্ধ। কিছুক্ষণ পরে, ব্যবহারকারী বি সেই একই প্রতিশ্রুতিগুলি তৃতীয় সংগ্রহস্থলের দিকে ঠেলে দেয়। আপনি কোন তারিখে আগ্রহী?
আমি অনুমান করছি যে আপনার একটি ভাগ করা সংগ্রহস্থল রয়েছে এবং সেই ভাগ করা সংগ্রহস্থলের ব্যবহারকারীরা কখন সংগ্রহশালায় প্রকাশিত হয়েছিল তা নির্ধারণ করতে সক্ষম হন। যদি এটি সত্য হয় তবে আপনাকে সেই তথ্য ভাগ করে নেওয়া সংগ্রহস্থলটিতে সংগ্রহ করতে হবে।
খারাপ খবর
দুর্ভাগ্যক্রমে, প্রতিশ্রুতিবদ্ধ বার্তাগুলিতে তারিখ সংযোজন করার কোনও উপায় নেই। এটি কমিট আইডি (যা সামগ্রীর একটি SHA1 হ্যাশ) পরিবর্তন করবে, যা সমস্ত ধরণের সমস্যা সৃষ্টি করে।
ভাল খবর
ভাগ্যক্রমে, গিটের নোটস নামে একটি (তুলনামূলকভাবে নতুন) বৈশিষ্ট্য রয়েছে । এই বৈশিষ্ট্যটি আপনাকে কমিটের সাথে স্বেচ্ছাসেবী পাঠ্য সংযুক্ত করতে দেয়, যা git logপ্রদর্শন করতে পারে। নোটগুলি অন্যদের সাথে সম্পাদনা এবং ভাগ করা যায়।
আপনি নোট বৈশিষ্ট্যটি প্রতিটি "কমিট [[তারিখে]" বার্তাটি যেভাবে ভাগ করা সংগ্রহশালা দ্বারা গ্রহণ করা হয়েছে তেমনভাবে সংযুক্ত করার জন্য সংযুক্ত করতে নোট বৈশিষ্ট্যটি ব্যবহার করতে পারেন।
দেখুন git help notesবিস্তারিত জানার জন্য।
কিভাবে তারিখ রেকর্ড করতে হয়
আমি প্রস্তাব দেওয়া পদ্ধতির এখানে:
post-receiveপ্রতিটি আপডেট হওয়া রেফারেন্সের জন্য প্রতিটি নতুন পৌঁছনীয় কমিটকে হাঁটতে আপনার ভাগ করা সংগ্রহস্থলের হুকটি সংশোধন করুন ।
প্রতিটি প্রতিশ্রুতিবদ্ধতার জন্য, [সংগ্রহশালা_আরল] এর "[ব্যবহারকারীর] মতো কিছু যুক্ত করুন এই প্রতিশ্রুতিটি [রেফ] সাথে [তারিখে]" কমিটের নোটটিতে যুক্ত করুন।
আপনি refs/notes/received-onডিফল্ট পরিবর্তে এই উদ্দেশ্যে (যেমন ) উত্সর্গীকৃত একটি নোট রেফ ব্যবহার করতে চাইতে পারেন refs/notes/commits। এটি অন্যান্য উদ্দেশ্যে তৈরি করা নোটগুলির সাথে বিরোধগুলি প্রতিরোধ করবে।
receiveআপনার নোটের রেফারেন্সের আপডেটগুলি অস্বীকার করতে আপনার হুকটি সংশোধন করুন (ব্যবহারকারীদের দুর্ঘটনাক্রমে বা উদ্দেশ্যমূলকভাবে নোটগুলির সাথে জগাখিচু করা থেকে বিরত রাখতে)।
সমস্ত ব্যবহারকারীকে তাদের কার্যকারী গাছের ভিতরে থেকে নিম্নলিখিত কমান্ডগুলি চালনা করতে বলুন:
# Fetch all notes from the shared repository.
# Assumes the shared repository remote is named 'origin'.
git config --add remote.origin.fetch '+refs/notes/*:refs/remote-notes/origin/*'
# Show all notes from the shared repository when running 'git log'
git config --add notes.displayRef 'refs/remote-notes/origin/*'
এই পদক্ষেপটি প্রয়োজনীয় কারণ গিট ডিফল্টরূপে উজানের স্টোরগুলিতে নন-শাখা, নন-ট্যাগ রেফারেন্সগুলিকে উপেক্ষা করে।
উপরের দিক থেকে অনুমান করা হয় যে রেফারেন্সগুলি কেবলমাত্র উন্নত, কখনই মুছে ফেলা হয় না বা জোর-আপডেট হয়। আপনি সম্ভবত post-receiveএই মামলাগুলি পরিচালনা করতে হুককে "[তারিখে]" নোটগুলিও যুক্ত করতে চান।
git reflog --date=local origin/master(নোটorigin/) করতে হয়েছিল। অন্যথায় কেবল কমিট, চেকআউট এবং টানগুলি তালিকায় ছিল (এটিও কার্যকর useful আসলে, আমি জোনাথনডয়ের উত্তরটি দ্বারা এটিকে দেখিয়েছি ।