গিট লগ দিয়ে কীভাবে একটি প্রকল্পের ইতিহাস পরিদর্শন করবেন

গিট লগ দিয়ে কীভাবে একটি প্রকল্পের ইতিহাস পরিদর্শন করবেন

গিট প্রদত্ত সবচেয়ে মৌলিক পরিষেবাগুলির মধ্যে একটি হল প্রকল্পের ইতিহাস। যেহেতু গিট একটি সংগ্রহস্থলের মধ্যে করা ফাইলগুলির সমস্ত পরিবর্তনগুলির উপর নজর রাখে, এটি খুব শক্তিশালী লগিং বৈশিষ্ট্যগুলি সরবরাহ করতে পারে। আপনি বিভিন্ন উপায়ে একটি প্রকল্পের ইতিহাস জিজ্ঞাসা করতে পারেন এবং আপনি একটি নমনীয় কমান্ড ব্যবহার করে বিভিন্ন ডেটা বের করতে এবং প্রদর্শন করতে পারেন।





দ্য git লগ কমান্ডটি বিশাল, যেকোনো নিয়মিত Git কমান্ডের মধ্যে সবচেয়ে বড়। এর ম্যানুয়াল 2,500 লাইনেরও বেশি। ভাগ্যক্রমে, git লগ মাত্র কয়েকটি মূল অপশন থেকে এর সবচেয়ে দরকারী আচরণ প্রদান করে।





ডিফল্ট আচরণের সাথে বেসিক লগিং

গতানুগতিক, git লগ প্রতিশ্রুতির বিপরীত-কালানুক্রমিক তালিকা দেখায়। প্রতিটি কমিট তার হ্যাশ, লেখক, তারিখ, এবং কমিট বার্তা অন্তর্ভুক্ত:





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

এখানে থেকে কিছু গিট লগ আউটপুট গিট সোর্স কোডের সংগ্রহস্থল নিজেই:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

ফলাফল কমিট হ্যাশ দিয়ে শুরু হয় ( 670 ...) শাখাগুলির একটি তালিকা অনুসরণ করে যা বর্তমানে সেই প্রতিশ্রুতিতে নির্দেশ করে ( হেড -> মাস্টার , ইত্যাদি)

গুগলে কে আপনাকে সার্চ করে দেখতে পারেন

পরবর্তী লাইন এই কমিটের লেখককে বর্ণনা করে, তাদের নাম এবং ইমেল ঠিকানা দেয়।





কমিটের সম্পূর্ণ তারিখ এবং সময় পরবর্তী লাইনে অনুসরণ করুন।

অবশেষে, কমিট বার্তার সম্পূর্ণ বিষয়বস্তু উপস্থিত হয়। আপনি কমান্ড-লাইন বিকল্পগুলির সাথে গিট লগ অফার করে এমন সব কিছু নিয়ন্ত্রণ করতে পারেন। দুটি প্রধান ধরণের বিকল্প রয়েছে:





  • বিন্যাস, যা সংজ্ঞায়িত করে কিভাবে গিট প্রতিটি কমিট প্রদর্শন করে।
  • ফিল্টারিং, যা সংজ্ঞায়িত করে কোনটি প্রতিশ্রুতিবদ্ধ git লগ অন্তর্ভুক্ত।

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

গিট লগ আউটপুট ফরম্যাট করা

সহজ সমন্বয়গুলির মধ্যে একটি হল --এক লাইন বিকল্প যা একটি খুব সংক্ষিপ্ত আউটপুট উত্পাদন করে:

git log --oneline

লগের প্রতিটি লাইনে এখন একটি সংক্ষিপ্ত কমিট হ্যাশ এবং কমিট বার্তার বিষয় রয়েছে। এই প্রকল্পে সাম্প্রতিক প্রতিশ্রুতির একটি ওভারভিউ পাওয়ার একটি চমৎকার উপায়:

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

একটি শাখা গ্রাফ দেখা

দ্য --চিত্রলেখ বিকল্পটি আপনাকে শাখার মধ্যে সম্পর্কগুলি কল্পনা করতে দেয়। এটি খুবই মৌলিক কিন্তু একটি জটিল ইতিহাসকে উন্মোচন করতে সাহায্য করতে পারে।

git log --oneline --graph

সম্পর্কিত: কিভাবে গিটের একটি নতুন শাখা তৈরি করবেন

কাস্টমাইজড সুন্দর আউটপুট

আপনি এটি ব্যবহার করে বিস্তারিতভাবে উল্লেখ করে আরো জটিল বিন্যাস অর্জন করতে পারেন -সুন্দর বিকল্প সিনট্যাক্স খুব সহজ থেকে অনেক জটিল হয়ে যায়, তাই সম্পূর্ণ বিবরণের জন্য একটি ম্যানুয়াল দেখুন

qled এবং oled মধ্যে পার্থক্য কি?
git log --pretty=short

মূলত হিসাবে একই git লগ তারিখ বা সম্পূর্ণ বার্তা ছাড়া:

git log --pretty=oneline

সমতুল্য git log --online

git log --pretty=fuller

অনেক বিস্তারিত অন্তর্ভুক্ত। এটি এমনকি লেখক এবং প্রতিশ্রুতিকর্তাকে পৃথক করে যারা তত্ত্বগতভাবে ভিন্ন ব্যক্তি হতে পারে:

সঙ্গে বিন্যাস: বৈকল্পিক, আপনি বিভিন্ন তথ্য দ্বারা প্রতিস্থাপিত স্থানধারক সহ আপনি যা চান তা ধারণকারী একটি স্ট্রিং সরবরাহ করতে পারেন। এখানে কিছু উদাহরণ স্থানধারক আছে:

  • %এইচ হ্যাশ করুন
  • %ঘন্টা সংক্ষিপ্ত কমিট হ্যাশ
  • %প্রতি লেখকের তারিখ
  • %সঙ্গে লেখকের তারিখ, আপেক্ষিক
  • %s মেসেজ সাবজেক্ট
  • % খ কমিটি মেসেজ বডি
  • %p সংক্ষিপ্ত অভিভাবক হ্যাশ

আপনি আউটপুটে নির্দিষ্ট অক্ষর যোগ করতে পারেন এবং এটি রঙিন করতে পারেন। এই উদাহরণটি তারিখের বিন্যাসে একটি বৈচিত্র দেখায়:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

খেয়াল করুন যে বন্ধনী তারিখটিকে ঘিরে রেখেছে। আপনি যেই ফরম্যাটিং বেছে নিন, যদি আপনি আউটপুটটি পাইপলাইনে বা অন্য ধরনের টেক্সট প্রসেসিংয়ের জন্য উপযোগী হতে চান, তাহলে আপনাকে আউটপুটের প্রতিটি অংশের সীমানা নির্ধারণ করতে হবে।

লগে ডিফ দেখাচ্ছে

একটি সংগ্রহস্থলের ইতিহাসের দিকে তাকানোর সময় একটি গুরুত্বপূর্ণ বিবরণ হল নিজেদের মধ্যে পার্থক্য। তারা প্রতিনিধিত্ব করে যে কোডটিতে আসলে কী পরিবর্তন হয়েছে! শুরু করার জন্য, আপনি প্রতিটি কমিট ব্যবহার করে পরিবর্তনের সারসংক্ষেপ পেতে পারেন -শর্টস্ট্যাট :

git log --shortstat

এটি একটি লাইন যোগ করে যেমন:

1 file changed, 48 insertions(+), 2 deletions(-)

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

git log -p

গিট লগ আউটপুট ফিল্টার করা

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

পরিমাণ দ্বারা সীমাবদ্ধ

আপনি যদি সাম্প্রতিক কিছু কমিট দেখানোর জন্য ফলাফলগুলি ছাঁটাই করতে চান, তাহলে -[সংখ্যা] বাক্য গঠন:

git log -2

তারিখ দ্বারা সীমাবদ্ধ

একটি নির্দিষ্ট তারিখের পরিসরে কমিটের সেট সীমিত করতে, ব্যবহার করুন --থেকে ( -পরে ) এবং -এই পর্যন্ত ( --আগে ) বিকল্প। এই প্রতিটি ISO 8601 ফরম্যাটে একটি তারিখ নেয়। আপনি ব্যবহার করতে পারেন --থেকে অথবা -এই পর্যন্ত তাদের নিজস্ব, অথবা উভয়ই একসঙ্গে একটি পরিসীমা নির্দিষ্ট করতে। বিকল্পগুলি -পরে এবং --আগে সমার্থক শব্দ।

git log --since='2021-01-01' --until='2021-05-01'

ফাইল দ্বারা সীমাবদ্ধ করা

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

git log filename

আপনি দেখতে পাবেন শুধুমাত্র সেই প্রতিশ্রুতিগুলি যা প্রভাবিত করেছে ফাইলের নাম

শাখার মধ্যে পার্থক্য

একটি শাখার লগ দেখার সময় আপনার কিছু অনন্য প্রয়োজনীয়তা থাকতে পারে। উদাহরণস্বরূপ, পুরো ইতিহাস দেখার পরিবর্তে, আপনি কেবল সেই নির্দিষ্ট শাখায় কী পরিবর্তন হয়েছে তা দেখতে চাইতে পারেন। গিট লগ এর মাধ্যমে সাহায্য করতে পারে ref1..ref2 বাক্য গঠন. তিনটি সামান্য ভিন্ন পদ্ধতি আছে যা আপনি ব্যবহার করতে পারেন:

  1. কমিট দেখুন যা প্রধান, কিন্তু শাখা নয়: | _+_ |
  2. শাখায় থাকা কমিটগুলি দেখুন, কিন্তু প্রধান নয়: | _+_ |
  3. শুধুমাত্র শাখা বা প্রধানের মধ্যে বিদ্যমান কমিটগুলি দেখুন: | _+_ |

দুটি ট্যাগের মধ্যে পার্থক্য

ঠিক যেমন আপনি শাখাগুলির মধ্যে ইতিহাস দেখতে পারেন ref1..ref2 সিনট্যাক্স, আপনি একইভাবে ট্যাগের মধ্যে ইতিহাস দেখতে পারেন। সর্বোপরি, ট্যাগ এবং শাখা উভয়ই রেফারেন্সের ধরন।

git log --oneline origin/branch..origin/main

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

git log --oneline origin/ main ..origin/ branch

দ্য git show কমান্ড এর চেয়েও বহুমুখী git লগ । এটি ট্যাগ এবং অন্যান্য ধরনের গিট বস্তুর সাথে কাজ করতে পারে কমিট ইতিহাসের বাইরে। এটি অনেক অপশন শেয়ার করে git লগ , তবে আপনার কেবলমাত্র এটির প্রয়োজন হবে যদি আপনার নীচের স্তরের বিশদে খনন করা দরকার।

গিট লগ সহ অতীত পর্যালোচনা করুন

গিট লগ একটি জটিল কমান্ড, তবে আপনি এর সবচেয়ে প্রাথমিক বিকল্পগুলি থেকে প্রচুর ব্যবহার পেতে পারেন। একটি রিপোজিটরির ইতিহাস ব্রাউজ করা কতটা পরিবর্তন ঘটে এবং কতজন মানুষ সেগুলি তৈরি করে তা বোঝার একটি চমৎকার উপায়। একবার আপনি যখন কোনও প্রকল্পের ইতিহাস সম্পর্কে ভালভাবে বুঝতে পারবেন, আপনি নিজেও এতে অবদান রাখতে একটি দুর্দান্ত অবস্থানে থাকবেন।

উইন্ডোজ 10 চালু করতে ব্যর্থ হয়েছে
শেয়ার করুন শেয়ার করুন টুইট ইমেইল সোশ্যাল কোডিং ট্রেন্ডে যোগ দিন এবং গিটহাব রিপোজিটরিতে অবদান রাখুন

আপনার কোডিং পেশী ব্যায়াম এবং ওপেন সোর্স প্রকল্প সাহায্য করতে চান? GitHub এ কীভাবে অবদান রাখতে হয় তা এখানে।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • গিটহাব
  • কোডিং টিপস
লেখক সম্পর্কে ববি জ্যাক(58 নিবন্ধ প্রকাশিত)

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

ববি জ্যাক থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন