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


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.