হেড এবং মাস্টার মধ্যে পার্থক্য


187

মধ্যে পার্থক্য কি HEADএবং masterগীত কি?

আমি গিটহাবের একটি প্রকল্পের ক্লোন করেছি এবং আমার পরিবর্তনগুলি দূরবর্তীতে ঠেলাতে চাই। তবে আমি কার দিকে ঠেলব?

স্ক্রিনশট

উত্তর:


162

masterএকটি শাখার শেষে একটি রেফারেন্স। কনভেনশন দ্বারা (এবং ডিফল্টরূপে) এটি সাধারণত প্রধান একীকরণ শাখা, তবে এটি হওয়ার দরকার নেই।

HEADআসলে একটি বিশেষ ধরণের রেফারেন্স যা অন্য রেফারেন্সকে নির্দেশ করে। এটি নির্দেশ করতে পারে master বা এটি নাও করতে পারে (এটি বর্তমানে যে কোনও শাখায় যাচাই করা আছে তা নির্দেশ করবে)। আপনি যদি জানেন যে আপনি masterশাখায় প্রতিশ্রুতিবদ্ধ হতে চান তবে এটিতে চাপ দিন।

এখানে একটি চাক্ষুষ উদাহরণ:

বিকল্প পাঠ

আপনার নিজস্ব সংগ্রহস্থলে আপনি এটি HEADচালিয়ে যে দিকে ইশারা দিচ্ছে তা পরীক্ষা করতে পারেন :

$ git symbolic-ref HEAD
refs/heads/master

যাইহোক, কোথায় remotes/origin/HEADনির্দেশ করছে এটি সন্ধান করা আরও জটিল কারণ এটি দূরবর্তী মেশিনে রয়েছে।

গিট রেফারেন্সগুলির জন্য এখানে দুর্দান্ত একটি টিউটোরিয়াল রয়েছে:

http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1


1
আমার চেয়ে আরও সুনির্দিষ্ট উত্তর এই ধারণাগুলির আশেপাশের চিত্রগুলির জন্য স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ৩৩৩০১৫৫ / / এবং স্ট্যাকওভারফ্লো. com / প্রশ্নগুলি / ৩৩০৯৫৫6/২ দেখুন ।
ভোনসি

37

এর সহজ উত্তরটি হ'ল HEADআপনি বর্তমানে যে শাখায় রয়েছেন তার অতি সাম্প্রতিক কমিটের জন্য একটি পয়েন্টার / লেবেল। masterযখন আপনি গিট সংগ্রহস্থল (উদাঃ git init) শুরু করেন তখন তৈরি করা ডিফল্ট শাখা হয় ।

আপনি masterশাখাটি মুছতে পারেন (উদাঃ git branch -D master)। আপনি HEADপয়েন্টার মুছতে পারবেন না ।


6
" HEADআপনি বর্তমানে যে শাখায় রয়েছেন তার অতি সাম্প্রতিক কমিটের জন্য একটি পয়েন্টার / লেবেল।" আমি মনে করি এটি সর্বোত্তমভাবে বিভ্রান্তিকর। যদি আপনি কোনও পুরানো প্রতিশ্রুতি চেকআউট করেন, তবে শিরোনাম এখন সেই পুরানো প্রতিশ্রুতির দিকে নির্দেশক, সাম্প্রতিক প্রতিশ্রুতি নয়। রাইট?
LarsH

2
আপনি সঠিক. হেড আপনার সর্বশেষতম চেকআউট। তবে আমার প্রতিরক্ষা হিসাবে, গিটের পক্ষে, checkoutকমান্ডটি অন্যান্য সাধারণ এসসিএম সিস্টেমে শাখা পরিবর্তন করার সমতুল্য।
benhorgen

1
আমি সহানুভূতি জানাই ... আমি সহজেই একই ভুল করতে পারতাম। আমি লক্ষ্য করেছি এর একমাত্র কারণ হ'ল আমি হেডের সত্যিকার অর্থ কী তা নিয়ে গবেষণা করার পর্যায়ে এসেছি। আপনার উত্তর সঠিক হতে পারে এমন কোনও সুযোগ? আমি নিজের মতো গিট অ-বিশেষজ্ঞদের সঠিক বর্ণনা খুঁজে পেতে হেডকে একটি কঠিন ধারণা বলে মনে করি। এবং ওয়েবে হেড সম্পর্কে ভুল তথ্য দেয় এমন পরামর্শ দেওয়ার কারণে এটি কিছুটা শক্ত হয়ে যায়।
লার্শ

2
আমি মনে করি যে গিট HEADপয়েন্টারটি আসলে কী তা সম্পর্কে আরও ভাল ধারণা পাওয়ার জন্য যে কেউ আপনার মন্তব্যটি একটি দুর্দান্ত ব্যাখ্যা । আমি আপনার মন্তব্যের প্রশংসা করি এবং মনে করি অন্যরাও তা করবে। আপনার ফলোআপ মন্তব্য সহ আমার মূল পোস্টের সামগ্রী একে অপরের পরিপূরক। ধন্যবাদ।
benhorgen

4
একটি প্রযুক্তিগতত্ব, তবে যদি আপনি কোনও পুরানো প্রতিশ্রুতি চেক আউট করেন তবে আপনি আর একটি শাখায় 'অন' থাকবেন না। যদি আপনি একটি শাখার পরিবর্তে কোনও প্রতিশ্রুতি চেকআউট করেন তবে আপনার কাছে "বিচ্ছিন্ন হেড" বলা হয়, আপনি আর 'শাখায় থাকবেন না'। 'একটি শাখায় থাকার' অর্থ আপনার শিরোনামটি একটি শাখাকে উল্লেখ করছে এবং সংজ্ঞা অনুসারে আপনি সেই শাখার সর্বাধিক সাম্প্রতিক প্রতিশ্রুতিতে রয়েছেন। আপনার 'b54fe7' প্রতিশ্রুতিবদ্ধ হওয়ার কারণে এবং মাস্টার সেই প্রতিশ্রুতিতে নির্দেশ করেছেন, তার অর্থ এই নয় যে আপনি মাস্টার শাখায় রয়েছেন। একই অঙ্গীকারের দিকে ইঙ্গিত করে একাধিক শাখা থাকতে পারে, আপনি যদি সেই শিরোনামটি ইঙ্গিত করছেন তবে 'চালু আছেন' যদি কোনও হয়।
জেসন গোয়েমাট

8

আপনার বর্তমান শাখার পরিবর্তনগুলি কেবল ধাক্কা দিন

git push origin

এবং এটি আপনার শাখাকে ' B' পরিবর্তন করে ' origin/B' তে চাপ দেবে।
আপনি যদি আপনার masterশাখায় থাকেন তবে গিটটি এগিয়ে যাবে origin/master
প্রকৃতপক্ষে এটি স্থানীয় শাখাগুলির সমস্ত পরিবর্তনগুলিকে ঠেলে দেবে যাতে দূরবর্তী শাখাগুলির সাথে মিল রয়েছে origin। এটি কনফিগারেশন সেটিংস পুশ.ডিফল্ট দ্বারা নিয়ন্ত্রিত হয় । প্রো গিট বইয়ের রেফস্পেসকে চাপ দেওয়াও
দেখুন ।


আপনি কি দেখতে পান পার্শ্বদন্ডে সব আপনার রিমোটের রেপো এর refspecs প্রতিনিধিত্বমূলক হয় এক্সপেরিমেন্টাল GitX কাঁটাচামচ এর GitX প্রকল্পের

বিকল্প পাঠ

এই HEADরিমোটটির জন্য ডিফল্ট শাখা নির্ধারণ করবে। ম্যান পৃষ্ঠা
দেখুন :git remote set-head

রিমোটের জন্য একটি ডিফল্ট শাখা থাকা প্রয়োজন হয় না, তবে নির্দিষ্ট শাখার পরিবর্তে দূরবর্তীটির নাম নির্দিষ্ট করার অনুমতি দেয়।
উদাহরণস্বরূপ, যদি এর জন্য ডিফল্ট শাখা originসেট করা থাকে masterতবে originআপনি যেখানে নির্দিষ্টভাবে নির্দিষ্ট করবেন সেখানে নির্দিষ্ট করা যেতে পারে origin/master

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