গিটটিতে বর্তমানে কোন প্রতিশ্রুতিবদ্ধ তা পরীক্ষা করা হয়েছে তা সন্ধান করুন


157

আমি ক এর মাঝখানে আছি git bisect অধিবেশন ।

আমি বর্তমানে কোন কমিট (এসএএএ 1 হ্যাশ) করছি তা সন্ধান করার আদেশ কী? git statusএটি সরবরাহ করে না

সম্পাদনা: আমার ধারণা কলিং git logএবং প্রথম প্রবেশের কাজগুলি দেখছি?

উত্তর:


173

একটি git bisectঅধিবেশন চলাকালীন আপনি বর্তমানে আপনার কার্যকরী অনুলিপিটি যাচাই করেছেন তা দেখার জন্য আপনার কাছে কমপক্ষে 5 টি ভিন্ন উপায় রয়েছে ( নোট করুন যে আপনি যখন বাইসেক্ট না করছেন তখন 1-4 বিকল্পগুলিও কাজ করবে ):

  1. git show
  2. git log -1
  3. বাশ প্রম্পট।
  4. git status
  5. git bisect visualize

আমি নীচে প্রতিটি বিকল্প ব্যাখ্যা করব।

বিকল্প 1: গিট শো

আপনার বর্তমানে কোনটি প্রতিশ্রুতিবদ্ধভাবে চেক-আউট করেছেন তা নির্ধারণ করবেন (সাধারণ সময় নয় ) আপনি কীভাবে প্যাচ আউটপুট দমন করার বিকল্পটি ব্যবহার করতে পারেন তার সাধারণ প্রশ্নের এই উত্তরে যেমন বর্ণনা করা হয়েছে :git bisectgit show-s

$ git show --oneline -s
a9874fd Merge branch 'epic-feature'

বিকল্প 2: গিট লগ -1

আপনি git log -1বর্তমানে কোনটি প্রতিশ্রুতিবদ্ধ তা সন্ধান করার জন্য আপনি সহজেই করতে পারেন।

$ git log -1 --oneline
c1abcde Add feature-003

বিকল্প 3: বাশ প্রম্পট

গিট সংস্করণ ১.৮.৩+ তে (বা এটি কোনও পূর্ববর্তী সংস্করণ ছিল?), আপনি যদি আপনার কার্যকরী অনুলিপিটিতে যাচাই করেছেন তার বর্তমান শাখাটি দেখানোর জন্য যদি আপনার বাশ প্রম্পটটি কনফিগার করা থাকে, তবে এটি আপনাকে যে বর্তমান প্রতিশ্রুতি পরীক্ষা করেছে তাও আপনাকে প্রদর্শন করবে দ্বিখণ্ডিত অধিবেশন চলাকালীন বা যখন আপনি "বিচ্ছিন্ন হেড" অবস্থায় থাকবেন। নীচের উদাহরণে, আমি বর্তমানে c1abcdeচেক আউট করেছি:

# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $

# Prompt at detached HEAD state 
user ~ (c1abcde...) $

বিকল্প 4: গিট স্থিতি

গিট সংস্করণ ১.৮.৩+ (এবং সম্ভবত পূর্বে, আবার নিশ্চিত নয়) হিসাবে দৌড় দেওয়াও আপনাকে দেখাবে যে দ্বিখণ্ডনের git statusসময় আপনি কী প্রতিশ্রুতিবদ্ধ ছিলেন এবং যখন আপনি আলাদা হেড অবস্থায় থাকবেন:

$ git status
# HEAD detached at c1abcde <== RIGHT HERE

বিকল্প 5: গিট বাইসেক্ট ভিজ্যুয়ালাইজ করুন

অবশেষে, আপনি যখন কাজটি করছেন git bisect, আপনি চালু করার জন্য সহজভাবে git bisect visualizeবা এর বিল্ট-ইন উপন্যাসটি ব্যবহার করতে পারেন , যাতে আপনি কোনটি প্রতিশ্রুতিবদ্ধ তা গ্রাফিক্যালি দেখতে পারবেন এবং সেইসাথে আপনি কোনটি খারাপ এবং ভাল হিসাবে চিহ্নিত করেছেন তা প্রতিশ্রুতিবদ্ধ। আমি নিশ্চিত যে সংস্করণ 1.8.3 এর আগে এটির ভাল অস্তিত্ব ছিল, আমি নিশ্চিত নই যে এটি কোন সংস্করণে চালু হয়েছিল:git bisect viewgitk

git bisect visualize 
git bisect view # shorter, means same thing

এখানে চিত্র বর্ণনা লিখুন


ঝরঝরে। আমি যখন প্রশ্নটি করি যে আমি গিট ১.৮ এ ছিল না, এবং তখন থেকে আমি নিজেকে একটি জেডএস ডান প্রম্পট পেয়েছি যা প্রতিশ্রুতিবদ্ধ হ্যাশটি দেখায়, আমি মনে করি এটি এমনকি যদি আমি দ্বিখণ্ডিত হয় তবে বিশেষত একটি বিশেষ সূচকও দেখায় তবে আমি নিরাপদ নই ' আমি যখন এই প্রশ্নটি জিজ্ঞাসা করেছি তখন থেকেই আসলে আর কোনও দ্বিখণ্ডিত কাজ হয়নি, বেশিরভাগ git log -p -S <search>ক্ষেত্রেই কাজটি করে।
স্টিভেন লু

git statusআপনি বিচ্ছিন্ন অবস্থায় না থাকলে কমিট আইডি আপনাকে দেখায় না। অন্যথায় এটি "শাখায় যাই হোক না কেন " বলে। git showযদিও কাজ করে
কিপ

87

আপনি ঠিক করতে পারেন:

git rev-parse HEAD

আরও কিছুটা ব্যাখ্যা করার জন্য: git rev-parseগিটের বেসিক কমান্ডটি কোনও বহিরাগত উপায়ে ব্যাখ্যা করার জন্য যা আপনি কমিটের নাম নির্দিষ্ট করতে পারেন এবং HEADএটি আপনার বর্তমান প্রতিশ্রুতি বা শাখার একটি রেফারেন্স। (একটি git bisectঅধিবেশনে, এটি একটি শাখার চেয়ে সরাসরি প্রতিশ্রুতিবদ্ধ ("বিচ্ছিন্ন হেড") নির্দেশ করে)

বিকল্পভাবে (এবং মনে রাখা সহজ) কেবল এটি করা হবে:

git show

... যা প্রতিশ্রুতিবদ্ধ যে দেখায় ডিফল্ট HEAD। আরও সংক্ষিপ্ত সংস্করণের জন্য, আপনি এটি করতে পারেন:

$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation

3
আপনি যদি অন্য কোথাও ব্যবহারের জন্য হ্যাশ পেতে git rev-parse HEADচান তবে কোনও আবর্জনা বিকল্প বনাম কোনও প্রক্রিয়াজাতকরণের প্রয়োজন নেই।
নিক টি টি

17
it গিট রেভ-পার্স হেড
273cf91b4057366a560b9ddcee8fe58d4c21e6cb

হালনাগাদ:

বিকল্পভাবে (যদি আপনার ট্যাগ থাকে):

(কোনও সংস্করণ নামকরণের জন্য ভাল, গিটে ফিরে যাওয়ার পক্ষে খুব ভাল নয়))

it গিট বর্ণনা
v0.1.49-স্থানীয় হোস্ট-AG-1-g273cf91

অথবা (মার্ক পরামর্শ হিসাবে, সম্পূর্ণতার জন্য এখানে তালিকাবদ্ধ):

it গিট শো --অনলাইন -এস
c0235b7 এক্সআইএফ ওরিয়েন্টেশনের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে আপলোড করা চিত্রগুলি

7
আপনি একটি SHA1 চেয়েছিলেন, মনে রাখার মতো সহজ কিছু নয়। ;-)
আলেকজান্ডার গ্ল্যাডিশ

এই সংস্করণটি খুব কার্যকর যদি আপনি কোনও স্ক্রিপ্টে কিছু পরীক্ষা করতে চান
ড্যানিয়েল লিকিত্রা

12

আপনি যদি কেবল একটি সাধারণ টুকরো তথ্য বের করতে চান তবে আপনি বিকল্পটি ব্যবহার git showকরে এটি পেতে পারেন --format=<string>... এবং আপনাকে অন্যটি না দেওয়ার জন্য বলতে পারেন --no-patch। এর অর্থ আপনি যা চান তার একটি মুদ্রণ-স্টাইল আউটপুট পেতে পারেন যা প্রায়শই একক ক্ষেত্র হতে পারে।

উদাহরণস্বরূপ, কেবল সংক্ষিপ্ত হ্যাশ পেতে ( %h) আপনি বলতে পারেন:

$ git show --format="%h" --no-patch
4b703eb

আপনি যদি এটিকে বাশে পরিবেশের পরিবর্তনশীল হিসাবে সংরক্ষণ করতে খুঁজছেন (লোকেরা করতে চান এমন একটি সম্ভাব্য জিনিস) আপনি $()বাক্য গঠনটি ব্যবহার করতে পারেন :

$ GIT_COMMIT="$(git show --format="%h" --no-patch)"

$ echo $GIT_COMMIT
4b703eb

আপনি যা করতে পারেন তারgit show --help পুরো তালিকাটি । তবে এখানে বৈশিষ্ট্যগুলির সংক্ষিপ্ত তালিকা রয়েছে যা কার্যকর হতে পারে:

  • %H হ্যাশ করা
  • %h সংক্ষেপে কমিট হ্যাশ
  • %T গাছের হ্যাশ
  • %t সংক্ষিপ্ত গাছের হ্যাশ
  • %P পিতা বা মাতাল হ্যাশ
  • %p সংক্ষিপ্ত পিতামাতা hashes
  • %an লেখকের নাম
  • %ae লেখক ইমেল
  • %at লেখকের তারিখ, ইউনিক্স টাইমস্ট্যাম্প
  • %aI লেখকের তারিখ, কঠোর আইএসও 8601 ফর্ম্যাট
  • %cn প্রতিশ্রুতিবদ্ধ নাম
  • %ce প্রতিশ্রুতিবদ্ধ ইমেল
  • %ct প্রতিশ্রুতিবদ্ধ তারিখ, ইউনিক্স টাইমস্ট্যাম্প
  • %cI প্রতিশ্রুতিবদ্ধতার তারিখ, কঠোর আইএসও 8601 ফর্ম্যাট
  • %s বিষয়
  • %f স্যানিটাইজড সাবজেক্ট লাইন, একটি ফাইল নামের জন্য উপযুক্ত
  • %gD রিফ্লগ নির্বাচনকারী, যেমন, রেফ / স্ট্যাশ @ {1}
  • %gd সংক্ষিপ্ত রিফ্লগ নির্বাচনকারী, উদাহরণস্বরূপ, স্ট্যাশ @ {1}

এই সমস্ত বিন্যাস বিকল্প, কিন্তু শাখারshow জন্য কিছুই নেই ।
বিভিজে

2

ব্যবহার করুন git show, যা আপনাকে কোনও প্রতিশ্রুতি বার্তাও দেখায় এবং কোনও যুক্তি না দিলে বর্তমান প্রতিশ্রুতিতে ডিফল্ট হয়।

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