সংক্ষিপ্ত গিট সংস্করণ হ্যাশ পান


381

HEADগিট থেকে সংক্ষিপ্ত সংস্করণ হ্যাশ পাওয়ার কি ক্লিনার উপায় আছে ?

আমি যেমন পাই তেমন আউটপুট দেখতে চাই:

 git log -n 1 | head -n 1 | sed -e 's/^commit //' | head -c 8

আমি প্রথমে একটি সংস্করণ স্ট্রিং উত্পন্ন করতে উপরের কমান্ডটি ব্যবহার করেছি, তবে এটি আরও ভাল:

git describe --tags

এটি 0.1.12(ট্যাগযুক্ত প্রতিশ্রুতি) বা 0.1.11-5-g0c85fbc(ট্যাগের পরে পাঁচটি কমিট) এর মতো স্ট্র্যাপ আউটপুট দেয় ।


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

@ ম্যাট্রিক্সফ্রোগ টিপটির জন্য ধন্যবাদ! আমার কাছে ইতিমধ্যে কিছু সাধারণ গিট এলিয়াস রয়েছে, তবে তারা এখনও কতটা শক্তিশালী হতে পারে তা আমি জানতাম না। আমি বিশেষত গ্রাফভিজ প্রদর্শনটি পছন্দ করি।
আটটিলা ও।

1
হাহ। আমি যখন চালনা git describe --tagsকরি তখন আমি বার্তাটি পাই, "মারাত্মক: কোনও নাম পাওয়া যায় নি, কিছুই বর্ণনা করতে পারে না।"
কুইন কমেন্ডেন্ট

@ কুইনকোমেন্ডেন্ট --tagsকাজ করার জন্য আপনাকে সম্ভবত প্রথমে কিছু ট্যাগ করতে হবে । প্রথমে একটি ট্যাগ তৈরি করার চেষ্টা করুন ; যেমন git tag 1.0.0
আটটিলা ও

উত্তর:


696

এটা চেষ্টা কর:

git rev-parse --short HEAD

কমান্ডটি git rev-parseবিভিন্ন লক্ষণীয় জিনিস লক্ষণীয় করে তুলতে পারে, সুতরাং এটি সন্ধান করার জন্য আপনাকে খুব সাবধানতার সাথে ডকুমেন্টেশনের মধ্য দিয়ে যেতে হবে ।


4
আপনি বিপরীতটি করতে পারেন এবং নিম্নলিখিতটি করে শর্ট কমিট হ্যাশ থেকে লম্বা কমিট হ্যাশ পেতে পারেনgit rev-parse HEAD
অ্যান্ডি

9
কমান্ডটি দীর্ঘ রেভ আইডিগুলির সাথেও কাজ করে যা অন্যান্য উত্সগুলি থেকে অনুলিপি হিসাবে আটকানো হয়git loggit rev-parse --short 97dd2ae065771908ee9ae0fa08ccdb58b5a6b18f97dd2ae
chiborg

3
এটি কেবল রেফারেন্স সহ কাজ করে। আপনি হেড, ট্যাগের নাম, শাখার নাম বা প্লেইন হ্যাশগুলি ব্যবহার করতে পারেন।
d12frosted

1
সতর্কতা, এটি 7 টি চরিত্রের কমিট হ্যাশ (ডিফল্টরূপে) ফেরত দেয় যখন গিটল্যাবের মতো অনেক জায়গায় 8 টি অক্ষর ব্যবহার করা হয়!
মাস্টারেক্সিলো

3
git rev-parse --short=8 HEADগিটল্যাব দ্বারা ব্যবহৃত 8 টি অক্ষরের দৈর্ঘ্য পেতে আপনি ব্যবহার করতে পারেন । আপনি উত্সcore.abbrevgit config core.abbrev 8
n8felton


70
git log -1 --abbrev-commit

এটাও করবে

git log --abbrev-commit

সংক্ষিপ্ত SHA-1 চেকসাম সহ লগ এন্ট্রি তালিকাবদ্ধ করবে।


1
দ্বিতীয়টি হ'ল আমি যা খুঁজছিলাম! মনে রাখা খুব সহজ এবং দৈনন্দিন জীবনে দরকারী।
iFreilicht

এছাড়াও এর সাথে কাজ করে git log --pretty=onelineযা --onelineঅন্যথায় পুরো আকারের হ্যাশগুলি মুদ্রণ করে।
sdaau

46

গিট কমিটের সংক্ষিপ্ত সংস্করণ এবং গিট কমিট বার্তা দেখার একটি সহজ উপায় হ'ল:

git log --oneline

নোট করুন যে এটির জন্য সংক্ষিপ্ত

git log --pretty=oneline --abbrev-commit

1
--অনলাইন সেরা বিকল্প
হুয়ান ইগনাসিও বারিসিচ

1
@ জুয়ানআইগনাসিও বারিশিচ আপনার সেরা তথ্যটি কতটা দেখার দরকার তার উপর নির্ভর করে option লেখক বা তারিখের মতো যদি আরও তথ্যের প্রয়োজন হয় তবে গিট লগ --abbrev-কমিট আরও ভাল বিকল্প হবে। এছাড়াও লগ
বেগ

35

একটি খুব সহজ উপায় হ'ল:

git describe --always

1
হা, মিষ্টি, যে ক্ষেত্রে গিট বর্ণনা করা অন্যথায় ব্যর্থ হবে সেই ক্ষেত্রে সম্বোধন করে (কারণ বর্ণনা করুন ইতিহাসের কোথাও কোনও ট্যাগ প্রত্যাশা করা হয়েছে) thx
আগ্রহী

8
আপনি যদি সংক্ষিপ্তভাবে শর্ট হ্যাশ চান তবে ভাল নয় - যেহেতু এটি কোনও টীকাগুলি দিতে পারে তা এখানে রয়েছে।
জিট্রাক্স

কিছু ক্ষেত্রে git describe --longসাহায্য করতে পারে। দস্তাবেজগুলি থেকে : "সর্বদা লম্বা ফর্ম্যাটটিকে আউটপুট দিন (ট্যাগ, কমিটের সংখ্যা এবং সংক্ষিপ্ত বিবরণ নাম) এমনকি এটি কোনও ট্যাগের সাথে মিলে গেলেও ।" [আমার জোর]
djvg

ব্যবহার --longকরা ভাল তবে কখনও কখনও আপনি একটি সংক্ষিপ্ত হ্যাশ এবং কখনও কখনও হাইফেন দ্বারা পৃথক 3 আইটেম পাবেন। এই দিনগুলিতে, আমি গৃহীত উত্তরটি ব্যবহার করি। আগের দিন, আমি টীকাযুক্ত ট্যাগগুলি সম্পর্কে জানতাম না - সম্ভবত তাদের উপস্থিতিও ছিল না!
স্টিভেন শ

16

সংক্ষিপ্ত হ্যাশ এবং শেষ মন্তব্য সহ শাখা:

git branch -v

  develop      717c2f9 [ahead 42] blabla
* master       2722bbe [ahead 1] bla

10

আমার নীচের সেটিংস সহ গিট সংস্করণ ২.7.৪ রয়েছে:

git config --global log.abbrevcommit yes
git config --global core.abbrev 8

এখন আমি যখন:

git log --pretty=oneline

আমি আট সংখ্যার সংক্ষিপ্ত প্রতিশ্রুতি আইডি পেয়েছি:

ed054a38 add project based .gitignore
30a3fa4c add ez version
0a6e9015 add logic for shifting days
af4ab954 add n days ago
...

1
যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কীভাবে এবং কেন এটি সমস্যার সমাধান করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করলে উত্তরের দীর্ঘমেয়াদী মান উন্নত হবে।
শারিলহোহমান

1
ভালো বুদ্ধি. এটির প্রশংসা করেছেন, শেরিল
ডাউন স্ট্রিম

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