এখানে একটি পার্ল স্ক্রিপ্ট রয়েছে যা একটি প্রদত্ত ফাইলের জন্য গিট লগ কমান্ডে পাওয়া যায় এমন গিট ডিফার্ট কমান্ড মুদ্রণ করে।
যেমন
git log pom.xml | perl gldiff.pl 3 pom.xml
উৎপাদনের:
git diff 5cc287:pom.xml e8e420:pom.xml
git diff 3aa914:pom.xml 7476e1:pom.xml
git diff 422bfd:pom.xml f92ad8:pom.xml
যা পরে কাটা এবং শেল উইন্ডো সেশনে পেস্ট করা যায় বা এতে পাইপ করা যায় /bin/sh
।
মন্তব্য:
- সংখ্যা (এই ক্ষেত্রে 3) কত লাইন মুদ্রণ করতে হবে তা নির্দিষ্ট করে
- ফাইল (এই ক্ষেত্রে pom.xML) উভয় জায়গায় একমত হতে হবে (উভয় জায়গায় একই ফাইলটি সরবরাহ করতে আপনি এটি শেল ফাংশনটিতে আবদ্ধ করতে পারেন) বা শেল স্ক্রিপ্ট হিসাবে বাইনারি ডিরেক্টরিতে রেখে দিতে পারেন
কোড:
# gldiff.pl
use strict;
my $max = shift;
my $file = shift;
die "not a number" unless $max =~ m/\d+/;
die "not a file" unless -f $file;
my $count;
my @lines;
while (<>) {
chomp;
next unless s/^commit\s+(.*)//;
my $commit = $1;
push @lines, sprintf "%s:%s", substr($commit,0,6),$file;
if (@lines == 2) {
printf "git diff %s %s\n", @lines;
@lines = ();
}
last if ++$count >= $max *2;
}
..
সত্যিই প্রয়োজনীয় যদিও তখন তার সঙ্গে (মোটামুটি পুরানো সংস্করণ ছাড়া, হয়তো) কাজ করব না। আপনি দু'জনের প্রতিশ্রুতি খুব দূরে থাকলে, ব্যবহার করতেgit log
বাgitk
SHA1 গুলি ব্যবহার করতে পারেন।gitk
এছাড়াও এর প্রসঙ্গ মেনুতে একটি "পৃথক নির্বাচিত -> এটি" এবং "এই পৃথক -> নির্বাচিত" রয়েছে।