প্রথমে নোট করুন যে আপনার প্রশ্নটি কিছুটা ভুল বুঝাবুঝি করে। রিমোট / ডিএইচডি রিমোটের ডিফল্ট শাখাকে প্রতিনিধিত্ব করে , অর্থাৎ সেই হেড যা সেই রিমোট রিপোজিটরিতে রয়েছে যেটিকে আপনি মূল বলছেন calling আপনি যখন আপনার রেপোতে শাখাগুলি স্যুইচ করেন, আপনি সেটিকে প্রভাবিত করছেন না। দূরবর্তী শাখাগুলির ক্ষেত্রেও এটি একই; আপনার থাকতে পারে masterএবং origin/masterআপনার রেপোতে, যেখানে দূরবর্তী সংগ্রহস্থলে শাখার origin/masterস্থানীয় অনুলিপি উপস্থাপন করে master।
অরিজিনের হেড কেবল তখনই পরিবর্তন হবে যখন আপনি বা অন্য কেউ এটি রিমোট রিপোজিটরিতে বাস্তবে পরিবর্তন করেন , যা মূলত কখনই ঘটে না - আপনি স্থিতিশীল শাখায় (সম্ভবত মাস্টার) ডিফল্ট শাখা একটি সার্বজনীন রেপো স্থির থাকতে চান। উত্স / HEAD হ'ল স্থানীয় রেফ যে রিমোট রিপোজিটরিতে হেডের স্থানীয় কপির প্রতিনিধিত্ব করে। (এর পুরো নাম রেফস / রিমোটস / উত্স / হেড)
আমি মনে করি উপরোক্ত উত্তরগুলি যা আপনি আসলে জানতে চেয়েছিলেন, তবে আপনি এগিয়ে গিয়ে জিজ্ঞাসা করেছেন এমন প্রশ্নের উত্তর দেওয়ার জন্য ... আপনি যখন কোনও সংগ্রহশালা ক্লোন করেন তখন মূল / শিরোনাম স্বয়ংক্রিয়ভাবে সেট হয়ে যায়, এবং এটি সম্পর্কে এটি। উদ্ভট, যে এটি কমান্ড দ্বারা সেট করা হয়নিgit remote update - আমি বিশ্বাস করি এটির পরিবর্তনের একমাত্র উপায় হ'ল আপনি ম্যানুয়ালি এটিকে পরিবর্তন করেন। (পরিবর্তনের মাধ্যমে আমি একটি ভিন্ন শাখার দিকে ইঙ্গিত করছি; স্পষ্টত প্রতিশ্রুতিবদ্ধ যে এটি শাখাগুলি পরিবর্তিত হলে পরিবর্তনের দিকে ইঙ্গিত করে, যা আনতে / টানতে / রিমোট আপডেটে হতে পারে))
সম্পাদনা করুন : নীচে আলোচিত সমস্যাটি গিট 1.8.4.3 এ সংশোধন করা হয়েছে ; দেখতে এই আপডেটে ।
যদিও একটি ছোট্ট সাবধানবাণী রয়েছে। হেড একটি প্রতীকী রেফ, সরাসরি প্রতিশ্রুতিবদ্ধ না করে একটি শাখার দিকে ইঙ্গিত করে তবে গিট রিমোট ট্রান্সফার প্রোটোকল কেবল প্রতিবেদনের প্রতিশ্রুতি দেয়। সুতরাং গিট হেড এবং অন্যান্য সমস্ত রেফার দ্বারা নির্দেশিত প্রতিশ্রুতির SHA1 জানে; তারপরে এটি একই কমান্ডের দিকে নির্দেশ করে এমন একটি শাখা আবিষ্কার করে হেডের মান হ্রাস করতে হবে। এর অর্থ হ'ল যদি সেখানে দুটি শাখা নির্দেশ করে তবে তা দ্বিধাগ্রস্ত। (আমি বিশ্বাস করি এটি সম্ভব হলে এটি মাস্টারকে বেছে নেয়, তবে প্রথমে বর্ণানুক্রমিকভাবে ফিরে আসে)) আপনি এই প্রতিবেদনে দেখতে পাবেন git remote show origin:
$ git remote show origin
* remote origin
Fetch URL: ...
Push URL: ...
HEAD branch (remote HEAD is ambiguous, may be one of the following):
foo
master
অদ্ভুতভাবে, যদিও হেডের মুদ্রণটির ধারণাটি এইভাবে মুছে ফেলা হবে যদি রিমোটে জিনিসগুলি পরিবর্তিত হয় (যেমন foo অপসারণ করা হয়), এটি আসলে আপডেট হয় না refs/remotes/origin/HEAD। এটি সত্যই অদ্ভুত পরিস্থিতিতে নিয়ে যেতে পারে। বলুন যে উপরের উদাহরণে উত্স / হেড প্রকৃতপক্ষে ফু-র দিকে ইঙ্গিত করেছিল এবং এরপরে উত্সের ফু শাখাটি সরানো হয়েছিল। আমরা তখন এটি করতে পারি:
$ git remote show origin
...
HEAD branch: master
$ git symbolic-ref refs/remotes/origin/HEAD
refs/remotes/origin/foo
$ git remote update --prune origin
Fetching origin
x [deleted] (none) -> origin/foo
(refs/remotes/origin/HEAD has become dangling)
যদিও রিমোট শো জানে যে হেড প্রধান, তবে এটি কোনও কিছুই আপডেট করে না। বাসি ফু শাখাটি সঠিকভাবে ছাঁটাই করা হয়েছে, এবং হেড ঝাঁকুনিতে পরিণত হয় (অস্তিত্বহীন শাখার দিকে ইঙ্গিত করে), এবং এটি এখনও মাস্টারকে নির্দেশ করার জন্য এটি আপডেট করে না। আপনি যদি এটি ঠিক করতে চান তবে ব্যবহার করুন git remote set-head origin -a, যা উপরের মতো স্বয়ংক্রিয়ভাবে উত্সের হেড নির্ধারণ করে এবং তারপরে যথাযথ দূরবর্তী শাখায় নির্দেশ করার জন্য প্রকৃতপক্ষে উত্স / হেড সেট করে।
refs/origin/HEAD। এটি কীভাবে কোনও সংগ্রহস্থলের নিজস্ব প্রতীকী রেফারেন্সHEADসেট হয়ে যায় not