উত্তর:
HEAD
(প্রত্যক্ষ বা অপ্রত্যক্ষ অর্থ প্রতীকী) বর্তমান প্রতিশ্রুতি রেফারেন্স। এটি এমন একটি প্রতিশ্রুতি যা আপনি কার্যনির্বাহী ডিরেক্টরিতে পরীক্ষা করে দেখেছেন (যদি না আপনি কিছু পরিবর্তন, বা সমতুল্য না করেন), এবং এটি একটি অঙ্গীকার যা শীর্ষক "গিট কমিট" একটি নতুন করে তোলে। সাধারণত HEAD
নামযুক্ত অন্য কয়েকটি শাখার প্রতীকী রেফারেন্স হয়; এই শাখাটি বর্তমানে শাখা বা বর্তমান শাখা পরীক্ষা করে দেখেছে। HEAD
সরাসরি কোন প্রতিশ্রুতিতে নির্দেশ করতে পারে; এই রাজ্যটিকে "বিচ্ছিন্ন হেড" বলা হয় এবং এটি নামবিহীন, বেনামে শাখা হিসাবে থাকা হিসাবে বোঝা যায়।
আর @
একা জন্য একটি শর্টকাট HEAD
, গীত 1.8.5 থেকে
ORIG_HEAD
পূর্ববর্তী অবস্থাটি হ'ল HEAD
কমান্ড দ্বারা সেট করা যা সম্ভবত বিপজ্জনক আচরণ রয়েছে, এগুলি ফিরিয়ে দেওয়া সহজ be গিটের রিফ্লগ রয়েছে এটি এখন কম দরকারী: HEAD@{1}
মোটামুটি সমান ORIG_HEAD
( বিপদজনক অপারেশনের আগে HEAD@{1}
সর্বদা সর্বশেষ মান HEAD
, ORIG_HEAD
সর্বশেষ মান HEAD
) value
আরও তথ্যের জন্য গিট (1) ম্যানপেজ , গিট ব্যবহারকারীর ম্যানুয়াল , গিট কমিউনিটি বই এবং গিট গ্লোসারি পড়ুন
HEAD
এবং সহ ORIG_HEAD
) বর্ণনা করে।
গিট রিসেট থেকে
"টান" বা "মার্জ" সর্বদা বর্তমান শাখার আসল টিপটি ভিতরে রেখে দেয়
ORIG_HEAD
।
git reset --hard ORIG_HEAD
এতে কঠোরভাবে পুনরায় সেট করা আপনার সূচি ফাইল এবং কার্যকারী গাছটিকে সেই অবস্থায় ফিরিয়ে আনবে এবং শাখার ডগাটিকে সেই প্রতিশ্রুতিতে পুনরায় সেট করে।
git reset --merge ORIG_HEAD
সংশ্লেষের ফলাফল পরিদর্শন করার পরে, আপনি দেখতে পাবেন যে অন্য শাখায় পরিবর্তনটি সন্তোষজনক নয়। "
git reset --hard ORIG_HEAD
" চালানো আপনাকে যেখানে ছিল সেখানে ফিরে যেতে দেবে, তবে এটি আপনার স্থানীয় পরিবর্তনগুলি বাতিল করবে, যা আপনি চান না। "git reset --merge
" আপনার স্থানীয় পরিবর্তনগুলি রাখে।
কোনও প্যাচ প্রয়োগ করার আগে, ORIG_HEAD বর্তমান শাখার ডগায় সেট করা আছে।
আপনার যদি একাধিক কমিটের সমস্যা হয় যেমনgit am
ভুল শাখায় ' ' চালানো বা মেলবক্স পরিবর্তন করে আরও সহজেই স্থির করা কমিটিতে কোনও ত্রুটি যেমন ("থেকে:" লাইনগুলিতে + ত্রুটি) থাকে তবে এটি কার্যকর।তদ্ব্যতীত, মার্জ সর্বদা '
.git/ORIG_HEAD
' HEAD এর মূল স্থানে সেট করে যাতে 'git reset ORIG_HEAD
' ব্যবহার করে সমস্যাযুক্ত মার্জটি অপসারণ করা যায় ।
দ্রষ্টব্য: থেকে এখানে
শিরোনাম একটি চলমান পয়েন্টার। কখনও কখনও এটি বর্তমান শাখা বোঝায়, কখনও কখনও এটি হয় না।
সুতরাং হেড ইতিমধ্যে সর্বত্র সর্বত্র "বর্তমান শাখা" এর প্রতিশব্দ নয় ।
হেডের অর্থ গিটের সর্বত্র "বর্তমান" তবে এটি প্রয়োজনীয়ভাবে "বর্তমান শাখা" (অর্থাত্ পৃথক হেড) বোঝায় না।
তবে এর প্রায়শই অর্থ "বর্তমান প্রতিশ্রুতি"।
এটি প্রতিশ্রুতি "git commit
" এর উপরে নির্মিত এবং "git diff --cached
" এবং "git status
" এর তুলনা করে।
এর অর্থ কেবলমাত্র সীমিত প্রসঙ্গে বর্তমান শাখাটি (ঠিক যখন আমরা একটি শাখার নামটি পরিচালনা করতে চাই --- প্রতিশ্রুতি / পুনর্বাসনা / ইত্যাদি মাধ্যমে ব্রাঞ্চের টিপটি পুনরায় সেট করা এবং বৃদ্ধি করা)।রিফ্লগ এমন একটি বাহন যা সময় এবং সময়ের সাথে ফিরে যায় এবং "কারেন্ট" ধারণার সাথে মেশিনের আকর্ষণীয় মিথস্ক্রিয়া হয়।
HEAD@{5.minutes.ago}
"এখনই ডানদিকে আমরা কী শাখায় রয়েছি তা খুঁজে বের করার জন্য এবং পরে সেই শাখার টিপটি 5 মিনিট আগে কোথায় ছিল তা খুঁজে বের করার জন্য" শ্রদ্ধা শিরোনামের শিরোনামের অর্থ হতে পারে "।
বিকল্পভাবে এর অর্থ হতে পারে "আমি 5 মিনিট আগে হেড হিসাবে উল্লেখ করা হবে এমন প্রতিশ্রুতিটি কী, উদাহরণস্বরূপ যদি আমি" গিট শো হেড "ফিরে এসেছি"।
git1.8.4 (জুলাই 2013) প্রবর্তন একটি নতুন স্বরলিপি চালু !
(প্রকৃতপক্ষে, এটি 1.8.5 বা 1.9, Q4 2013 এর জন্য হবে: প্রতিশ্রুতি 9ba89f4 এর সাথে পুনঃপ্রবর্তিত )
চারটি মূল অক্ষর "
HEAD
" টাইপ করার পরিবর্তে আপনি@
এখন
"git log @
" উদাহরণস্বরূপ " " বলতে পারেন ।
কমিট cdfd948 দেখুন
টাইপিং '
HEAD
' ক্লান্তিকর, বিশেষত যখন আমরা এর@
পরিবর্তে ' ' ব্যবহার করতে পারি ।'
@
' বাছাই করার কারণটি হ'ল এটিref@op
সিনট্যাক্স থেকে প্রাকৃতিকভাবে অনুসরণ করে (উদাহরণস্বরূপHEAD@{u}
), যদিও আমাদের কোনও রেফ নেই, এবং কোনও অপারেশন নেই, এবং যখন আমাদের কাছে এটি নেই, এটি অনুমান করার জন্য সংবেদন করেHEAD
। 'সুতরাং এখন আমরা '
git show @~1
' ব্যবহার করতে পারি , এবং সেই সমস্ত মঙ্গলময়তা।এখন অবধি '
@
' একটি বৈধ নাম ছিল তবে এটি এই ধারণার সাথে সাংঘর্ষিক, সুতরাং আসুন এটি অবৈধ করে তুলি। সম্ভবত খুব কম লোকই, যদি থাকে তবে এই নামটি ব্যবহার করেছেন।
1.8.4-আরসি 3 সময়কালের (14 ই আগস্ট, 2013) এর মধ্যে একটি ব্লগ পোস্ট ঘোষণা করেছে যে এই বৈশিষ্ট্যটি আবার ফিরিয়ে দেওয়া হয়েছে এবং বিলম্ব হয়েছে ( মাথা কাপানোর জন্য আপনাকে ধন্যবাদ কাপকেক )।
আবার এটি কমিট 9ba89f4 (সেপ্টেম্বর 2013) এর সাথে আবারও পরিচয় হয়েছে ।
কমিট 2c2b664 দেখুন :
@
জন্য শর্টকার্ট HEAD
"এটি cdfd948 প্রতিশ্রুতি ফেরায় , কারণ এটি কেবল "
@
" প্রযোজ্য নয় (এবং@{u}
এটির মতো প্রয়োগকারীগুলির সাথে ফর্মগুলিও প্রয়োগ করে না), তবে উদাহরণস্বরূপ "refs/heads/@/foo
" এটিও প্রভাবিত করে যা এটি করা উচিত নয়।সংক্ষিপ্ত হাত দেওয়ার প্রাথমিক ধারণাটি ভাল হতে পারে এবং বিষয়টি পরে আবার চেষ্টা করা যেতে পারে তবে আসন্ন মুক্তির জন্য আপাতত বিদ্যমান ব্যবহারের ক্ষেত্রে প্রভাব ফেলতে এড়াতে ফিরে আসি।
git reset
উত্পন্ন করবে ORIG_HEAD
। সুতরাং আপনার rm
এটি ম্যানুয়ালি প্রয়োজন । উদাহরণস্বরূপ stackoverflow.com/a/12418078/6309 দেখুন ।
@
উপনামটি গিট ১.৮.৪ রিলিজের জন্য (অস্থায়ীভাবে?) ফেরানোHEAD
হচ্ছে ! এটি আজই ঘোষণা করা হয়েছিল!
আমার উপলব্ধি হ'ল হেড বর্তমান শাখাটিকে নির্দেশ করে, যখন "বিপজ্জনক" ক্রিয়াকলাপ করার আগে পূর্বের হেড সংরক্ষণ করার জন্য ওআরআইজি_ইএইডি ব্যবহৃত হয়।
উদাহরণস্বরূপ গিট-রিবেস এবং গিট-এমএম শাখার মূল টিপটি কোনও পরিবর্তন প্রয়োগ করার আগে রেকর্ড করুন।
git branch foo -b
অনাথদের জন্য একটি শাখা "তৈরি" করার জন্য করেন।
থেকে man 7 gitrevisions
:
হেড শৃঙ্খলার নাম দেয় যার ভিত্তিতে আপনি কার্যনির্বাহী গাছের পরিবর্তনের উপর ভিত্তি করে। FETCH_HEAD আপনার শেষ গিট আনার অনুরোধের মাধ্যমে আপনি একটি রিমোট রিপোজিটরি থেকে যে শাখাটি নিয়ে এসেছেন তা রেকর্ড করে। ওআরআইজিএইইডিএইড কমান্ড দ্বারা তৈরি করা হয় যা আপনার হেডকে কঠোর উপায়ে সরিয়ে নিয়ে যায়, তাদের পরিচালনার আগে হেডের অবস্থানটি রেকর্ড করতে, যাতে আপনি শাখার টিপটি সহজে চালিয়ে যাওয়ার আগে রাজ্যে ফিরে যেতে পারেন। MERGE_HEAD আপনি গিট সংহতকরণের সময় আপনার শাখায় মার্জ হওয়া কমিটগুলি রেকর্ড করে। CHERRY_PICK_HEAD আপনি গিরি চেরি-বাছাই করার সময় চেরি-বাছাই করা প্রতিশ্রুতিটি রেকর্ড করে।
HEAD
এখন (আসন্ন git1.8.4) '@
'! দেখুন নীচের আমার সম্পাদিত উত্তর