আমার 'গিট শাখা' এর কোনও মাস্টার নেই কেন?


96

আমি গিট নবাগত এবং আমি "মাস্টার" শাখা সম্পর্কে পড়তে থাকি। "মাস্টার" কি কেবল একটি প্রচলিত নাম যা লোকেরা ব্যবহার করেছিল বা এর বিশেষ অর্থ রয়েছে HEAD?

আমি যখন আমার git branchকাছে থাকা ক্লোনটি করি তখন আমি কেবল 1 টি শাখা দেখতে পাই - আমি যেটি চালু on মোটেও "মাস্টার" নয়। যদি আমি টাইপ করি git checkout master(যেমন আমি প্রচুর টিউটোরিয়াল বা গাইড দেখি) তবে আমি পাই

error: pathspec 'master' did not match any file(s) known to git.

আমার ক্লোনটি কেন নেই তা নিয়ে আমি কেবল বিভ্রান্ত হয়েছি masterযে প্রত্যেকে মনে হয় যে এটি সর্বদা বিদ্যমান।

উত্তর:


76

বেশিরভাগ গিট সংগ্রহস্থলগুলি masterমূল (এবং ডিফল্ট) শাখা হিসাবে ব্যবহার করে - আপনি যদি একটি নতুন গিট রেপো এর মাধ্যমে সূচনা করেন তবে git initএটি masterডিফল্টরূপে পরীক্ষা করে দেখাবে ।

তবে, আপনি যদি কোনও সংগ্রহস্থল ক্লোন করেন তবে আপনার কাছে যে ডিফল্ট শাখা রয়েছে সেগুলি দূরবর্তীটির HEADপয়েন্টগুলিতে যা কিছু আছে ( HEADআসলে একটি প্রতীকী রেফ যা কোনও শাখার নামকে নির্দেশ করে)। সুতরাং আপনি যে ক্লোনিসটি ক্লোন করেছেন সেটির যদি কোনও HEADইঙ্গিত থাকে, বলুন foo, তবে আপনার ক্লোনটির কেবল একটি fooশাখা থাকবে।

আপনি যে রিমোটটি থেকে ক্লোন করেছেন তা এখনও একটি masterশাখা থাকতে পারে (আপনি এটি দিয়ে পরীক্ষা করতে পারেন git ls-remote origin master) তবে আপনি সেই শাখার স্থানীয় সংস্করণটি ডিফল্টরূপে তৈরি করতে পারবেন না, কারণ git cloneকেবল রিমোটটির পরীক্ষা করে দেখুন HEAD


6
এবং তারপরে যদি এটি বিদ্যমান থাকে তবে উত্স থেকে কীভাবে চেকআউট করবেন?
Bunyk

আপনি কীভাবে হেডকে মাস্টার হিসাবে সেট করবেন
ম্যাট স্মিথ

32
আমি গিট ইন দিয়ে আমার রেপো তৈরি করেছি এবং মাস্টার শাখা তৈরি হয়নি। গিথুব দিয়ে, শাখাটি স্বয়ংক্রিয়ভাবে তৈরি হয়, তবে বিটবকেটের সাথে নয়। Mising পদক্ষেপ ছিল: git add ., git commit -m "Test", তারপর git push -u origin master
শাইলেন

12
@ অ্যাম্বার আমি এই ত্রুটিটি "মারাত্মক: মাস্টার: বৈধ SHA1 নয়" পেয়ে যাচ্ছি
KK_07k11A0585

4
@ আম্বর git ls-remote origin masterকিছুই দেখায় না।
প্যারিশা খাতেরি

86

স্থানীয়ভাবে অস্তিত্ব নেই তবে দূরবর্তী রেপোতে রয়েছে এমন একটি শাখা যাচাই করতে আপনি এই আদেশটি ব্যবহার করতে পারেন:

git checkout -t -b master origin/master

এই প্রশ্নটি বেশ পুরানো হলেও সাহায্য করার চেষ্টা করার জন্য ধন্যবাদ। তবে আপনার উত্তরটি আমি যা জিজ্ঞাসা করছিলাম তা নয়।
aberrant80

fatal: Cannot update paths and switch to branch 'master' at the same time.
রাফেল অনোফ্রে


গিথুব একটি মাস্টার শাখা তৈরি এবং ডিফল্ট হিসাবে সেট করা স্থির
রাফেল অনোফ্রে

45

master এটি কেবল একটি শাখার নাম, যখন কোনও নতুন সংগ্রহশালা তৈরি করা হয় তখন এটি ডিফল্টরূপে তৈরি করা ব্যতীত আর কোনও জাদু নেই।

আপনি এটি দিয়ে আবার যুক্ত করতে পারেন git checkout -b master


git checkout -b masterআমার জন্য বর্তমানের নতুন শাখাটি যুক্ত করুন।
nnyby

4
@ ন্যানি যা আছে তা থেকে git checkout -b masterএকটি masterশাখা তৈরি করবে HEAD- সুতরাং আপনি যদি অন্য কোনও শাখায় থাকেন তবে এটি এর masterবাইরে একটি শাখা তৈরি করবে । যদি আপনার ইতিমধ্যে কোনও masterশাখা থাকে (তবে আপনি যা করবেন, যদি না আপনি এটি মুছে ফেলেন বা কখনও এটি প্রতিশ্রুতিবদ্ধ না হন) বাদে । আপনার যদি ইতিমধ্যে একটি masterশাখা থাকে তবে এই আদেশটি আপনাকে কেবল একটি ত্রুটি দেবে।
ম্যাট কার্টিস

4
আমার প্রশ্ন: আমি কীভাবে ঘটনাক্রমে মাষ্টারকে মুছে ফেললাম?
এরিক ওয়াকার

@ এরিকওয়াকার masterকেবল একটি শাখা, যা দিয়ে মুছে ফেলা যায় git branch -d master। যদিও গিটটি বর্তমানে আপনি যে শাখাটি চালু করছেন তা মুছে ফেলা থেকে রক্ষা করবে, তবে masterশাখাটি রক্ষা করার জন্য বিশেষ কিছুই নেই । এর চেয়ে আরও বিশেষভাবে, আপনি এটি কীভাবে করেছিলেন তা বলা মুশকিল। আপনি কি একবার historyতাকানোর জন্য নিজের শেল কমান্ডটি ব্যবহার করছেন ?
ম্যাট কার্টিস

4
হাই @ ম্যাটকুর্টিস, আপনার উত্তরটি বর্তমানে বিভ্রান্ত করছে। git checkout -b masterকেবলমাত্র HEAD যখন উত্স / মাস্টার সেট করা থাকে তখনই কাজ করবে। অন্য যে কোনও ক্ষেত্রে (যেমন আপনি 'বিকাশ' তে git checkout -b masterরয়েছেন ), 'মাস্টার' নামে একটি শাখা তৈরি করবে যা বর্তমান হেড পজিশনের উপর ভিত্তি করে (যেমন 'বিকাশ' থেকে)। নতুন শাখার জন্য কোন শাখাটি সবচেয়ে গুরুত্বপূর্ণ হবে তাও আপনাকে জানাতে হবে। : @Bunyk এই থ্রেডে সঠিক উত্তর আছে stackoverflow.com/a/21330943/287109
AVIDeveloper

24

সম্পূর্ণ নতুন একটি সংগ্রহস্থল নিয়ে আমার আসলে একই সমস্যা ছিল। এমনকি আমি git checkout -b masterএটি দিয়ে একটি তৈরি করার চেষ্টা করেছি , তবে এটি শাখাটি তৈরি করবে না। আমি তখন বুঝতে পেরেছিলাম যে আমি কিছু পরিবর্তন করেছি এবং সেগুলি প্রতিশ্রুতিবদ্ধ করেছি, গিট আমার মাস্টার শাখা তৈরি করেছে।


4
বিভ্রান্তিকর অংশটি হ'ল লোকেরা বলে যে আমার কাছে মাস্টার আছে তবে আমি যা কিছু করার চেষ্টা করি তা ত্রুটি বার্তা পেয়ে যেত যে আমার কাছে মাস্টার নেই। (আমার রেপোটি খালি থাকাকালীন আমি একটি দেব শাখা তৈরি করার চেষ্টা করছিলাম () কিছু (কোনও ফাইল) সংঘটিত করার মাধ্যমে, মাস্টার এখন অস্তিত্বে এসেছেন এবং আমি অন্যান্য কাজ করতে সক্ষম হয়েছি। আমি অন্যান্য উত্তরে জিনিসগুলি চেষ্টা করেছিলাম, কিন্তু কিছুই সাহায্য করেনি। এখানে এই উত্তরটি সেখানকার অনেক ব্যক্তির জন্য প্রযোজ্য হতে পারে। (আমি গীতে হ্যাশিংয়ের বিষয়ে অনেক কিছু পড়েছি I আমি অনুমান করি শুরুতে যদি কিছু না থাকে তবে হ্যাশ করার কিছুই নেই))
ফাই এনজি

16

আমার ক্ষেত্রে একটি বিকাশ শাখা ছিল তবে কোনও মাস্টার শাখা ছিল না। অতএব আমি সদ্য নির্মিত হেডকে বিদ্যমান শাখায় নির্দেশ করে ভান্ডারগুলিকে ক্লোন করেছি। তারপরে আমি অনুপস্থিত মাস্টার শাখা তৈরি করেছি এবং নতুন মাস্টার শাখায় নির্দেশ করতে হেড আপডেট করেছি।

git clone git:repositoryname --branch otherbranch
git checkout -b master
git update-ref HEAD master
git push --set-upstream origin master

আহ আমরা সেখানে যাই .. আমার কোন মাস্টার বা কিছুই ছিল না। প্রথমে আমি একটি নতুন ফাইল যুক্ত করেছি এবং প্রাথমিক প্রতিশ্রুতি - তারপরে এটি করেছি। কবজির মতো কাজ করেছেন
ডাস্টিন সিল্ক

12

এটি যদি আপনি ক্লোন করেছেন এমন একটি নতুন রেপো, এটি এখনও খালি থাকতে পারে, সেক্ষেত্রে:

git push -u origin master

সম্ভবত এটি বাছাই করা উচিত।

(আমার ক্ষেত্রে এটি করেছেন। নিশ্চিত নয় যে এটি একই সমস্যা, ভেবেছিলাম আমার এই পোস্টটি করা উচিত, অন্যকে সাহায্য করতে পারে))


8

আমি একই ইস্যুতে দৌড়ে গিয়ে সমস্যাটি বের করেছিলাম। আপনি যখন কোনও সংগ্রহশালা শুরু করবেন তখন আসলে কোনও শাখা নেই। আপনি যখন কোনও প্রকল্প চালু করবেন git add .এবং তারপরে git commitএবং মাস্টার শাখা তৈরি হবে।

আপনার কিছু যাচাই না করেই কোনও মাস্টার শাখা নেই। সেক্ষেত্রে এখানকার অন্যান্য লোকেরা আপনাকে যে পদক্ষেপগুলি বলেছে সেগুলি অনুসরণ করতে হবে।


4
সত্য। একটি "গিট টিআইআর" এর পরে "গিট চেকআউট-বি সাম্রাজ্য নাম" করুন এবং আপনার কোনও মাস্টার শাখা নেই
কোয়েম

ফোল্ডারটি খালি থাকলে এটি যথেষ্ট নাও হতে পারে। সুতরাং, এটি কাজ করার জন্য আপনার কিছু ফাইল যুক্ত করা উচিত। এটি অন্য একটি বিশ্রীতা আসলে হতাশাব্যঞ্জক।
আলেহরো

0

মনে হচ্ছে মাস্টার শাখায় কমপক্ষে একটি স্থানীয় কমিট থাকতে হবে:

git push -u origin master

সুতরাং আপনি যদি তা করেন git init .এবং তারপরেও git remote add origin ...আপনার এখনও করতে হবে:

git add ...
git commit -m "..."

0

আপনি যদি গিথুব ওয়েব জিইউআই থেকে একটি নতুন সংগ্রহস্থল তৈরি করেন তবে আপনি কখনও কখনও 'মাস্টার' এর পরিবর্তে 'মেইন' নামটি পান। git statusআপনার টার্মিনাল থেকে আদেশটি ব্যবহার করে আপনি দেখতে পাবেন যে আপনি কোন অবস্থান location কিছু ক্ষেত্রে, আপনি দেখতে পাবেন origin/main

আপনি যদি সিএলআই এর মাধ্যমে আপনার অ্যাপ্লিকেশনটিকে একটি ক্লাউড পরিষেবাতে ঠেলে দেওয়ার চেষ্টা করছেন তবে 'মাস্টার' নয়, 'মেইন' ব্যবহার করুন।

উদাহরণ: git push heroku main

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