কি এই মানে
আপনার উজান — আপনি যে রিমোটটি কল করেন origin
তার আর কোনও দিন নেই, বা কখনও কখনও হয়নি (একা এই তথ্য থেকে বলা অসম্ভব) নামে একটি শাখা রয়েছে feature/Sprint4/ABC-123-Branch
। এর জন্য একটি সাধারণ কারণ রয়েছে: কেউ (সম্ভবত আপনি না, বা আপনি মনে করতে পারেন) অন্য গিট সংগ্রহস্থলের শাখাটি মুছে ফেলেছে।
কি করো
এটি আপনি যা চান তার উপর নির্ভর করে । নীচে আলোচনা বিভাগ দেখুন। আপনি পারেন:
- রিমোটে শাখাটি তৈরি বা পুনরায় তৈরি করুন বা
- আপনার স্থানীয় শাখা মুছুন, বা
- অন্য কিছু আপনি মনে করতে পারেন.
আলোচনা
আপনার অবশ্যই দৌড়াতে হবে git pull
(আপনি যদি চালাচ্ছিলেন তবে আপনি git merge
একটি পৃথক ত্রুটি বার্তা পাবেন বা কোনও ত্রুটি বার্তা পাবেন না)।
আপনি যখন চালান git fetch
, আপনার গিটটি আপনার কনফিগারেশনের বিভাগের url
আওতায় থাকা লাইনের ভিত্তিতে অন্য গিটের সাথে যোগাযোগ করে [remote "origin"]
। এই গিট একটি কমান্ড চালায় ( upload-pack
) যা অন্যান্য জিনিসের মধ্যে আপনার গিটকে সমস্ত শাখার একটি তালিকা প্রেরণ করে । git ls-remote
এটি কীভাবে কাজ করে তা দেখতে আপনি ব্যবহার করতে পারেন (এটি ব্যবহার করে দেখুন এটি শিক্ষামূলক)। এটি git
নিজের জন্য গিট সংগ্রহস্থলে চালানোর সময় আমি যা পাই তার একটি স্নিপেট এখানে দেওয়া হয়েছে:
$ git ls-remote origin
From [url]
bbc61680168542cf6fd3ae637bde395c73b76f0f HEAD
60115f54bda3a127ed3cc8ffc6ab6c771cbceb1b refs/heads/maint
bbc61680168542cf6fd3ae637bde395c73b76f0f refs/heads/master
5ace31314f460db9aef2f1e2e1bd58016b1541f1 refs/heads/next
9e085c5399f8c1883cc8cdf175b107a4959d8fa6 refs/heads/pu
dd9985bd6dca5602cb461c4b4987466fa2f31638 refs/heads/todo
[snip]
refs/heads/
এন্ট্রি শাখা দূরবর্তী উপস্থিত সব তালিকাবদ্ধ করে 1 সংশ্লিষ্ট বরাবর কমিট ID- র (জন্য refs/tags/
এন্ট্রি ID- র ট্যাগে বাতলান পারে করে বদলে বস্তু)।
আপনার গিট এই শাখার প্রতিটি নাম নেয় এবং একই বিভাগে লাইন (গুলি) অনুযায়ী এটি পরিবর্তন করে । এই ক্ষেত্রে, আপনার গিটটি প্রতিস্থাপন করে , উদাহরণস্বরূপ। আপনার গিট এটি জুড়ে আসে এমন প্রতিটি শাখার নাম দিয়ে এটি করে।fetch
remote
refs/heads/master
refs/remotes/origin/master
এটি বিশেষ ফাইলটিতে মূল নামগুলিও রেকর্ড করে FETCH_HEAD
(আপনি যদি নিজের .git
ডিরেক্টরিতে দেখেন তবে আপনি এই ফাইলটি দেখতে পাবেন )। এই ফাইলটি আনা নাম এবং আইডি সংরক্ষণ করে।
git pull
কমান্ড একটি সুবিধার সংক্ষিপ্ত কাটা হিসাবে বোঝানো হয়: এটা রান git fetch
দূরবর্তী উপযুক্ত উপর, এবং তারপর git merge
(অথবা, যদি তাই হয়, নির্দেশ git rebase
) যাই হোক না কেন আর্গুমেন্ট একত্রীকরণ (অথবা রি-বেসের ফলে) প্রয়োজন হয় যেমন পরিচালিত [branch ...]
অধ্যায়। এই ক্ষেত্রে, আপনার [branch "feature/Sprint4/ABC-123-Branch"]
বিভাগটি আনতে বলেছে origin
, তারপরে নামের অধীনে যা আইডি পাওয়া গেছে তার সাথে একত্রীকরণ করুন refs/heads/feature/Sprint4/ABC-123-Branch
।
যেহেতু এই নামে কিছুই পাওয়া যায় নি, git pull
অভিযোগ এবং স্টপ।
আপনি যদি এটি দুটি পৃথক পদক্ষেপ হিসাবে দৌড়েছিলেন git fetch
এবং তারপরে git merge
(বা git rebase
), আপনার গিটটি কীভাবে remotes/origin/
একত্রীভূত হবে বা কীভাবে পুনরায় চালু করতে হবে তা দেখতে আপনার ক্যাশেড রিমোট-ট্র্যাকিং শাখাগুলির দিকে তাকাবে। যদি একসময় এ জাতীয় শাখা ছিল, তবে আপনার কাছে এখনও দূরবর্তী ট্র্যাকিং শাখা থাকতে পারে। এই ক্ষেত্রে আপনি একটি ত্রুটি বার্তা পাবেন না। যদি কখনও এ জাতীয় শাখা না থাকে, বা আপনি যদি (যা মৃত রিমোট-ট্র্যাকিং শাখাগুলি সরিয়ে দেয়) git fetch
দিয়ে চালিত হন --prune
, যাতে আপনার কোনও সম্পর্কিত রিমোট-ট্র্যাকিং শাখা না থাকে তবে আপনি অভিযোগ পেয়ে যাবেন, তবে এটি origin/feature/Sprint4/ABC-123-Branch
পরিবর্তে উল্লেখ করা হবে।
উভয় ক্ষেত্রেই , আমরা উপসংহারে পৌঁছাতে পারি যে feature/Sprint4/ABC-123-Branch
নামটির প্রত্যন্ত অঞ্চলে এখন নেই origin
।
এটি সম্ভবত একসময় উপস্থিত ছিল এবং আপনি সম্ভবত দূরবর্তী ট্র্যাকিং শাখা থেকে আপনার স্থানীয় শাখা তৈরি করেছিলেন। যদি তা হয় তবে আপনার সম্ভবত এখনও দূরবর্তী ট্র্যাকিং শাখা রয়েছে। কারা শাখাটি রিমোট থেকে সরিয়েছে এবং কেন, বা আপনি এটি পুনরায় তৈরি করতে কিছুটা চাপ দিতে পারেন বা আপনার দূরবর্তী ট্র্যাকিং শাখা এবং / অথবা আপনার স্থানীয় শাখা মুছে ফেলতে পারেন তা অনুসন্ধান করতে পারেন।
1 ওয়েল, এটি স্বীকার করে চলেছে , কমপক্ষে। তবে যতক্ষণ না তারা নির্দিষ্টভাবে কিছু রেফ লুকিয়ে রাখে, তালিকায় সমস্ত কিছুই অন্তর্ভুক্ত থাকে।