মুছে ফেলা দূরবর্তী শাখা সঙ্গে উত্স থেকে আনতে?


440

যখন আমি করি git fetch originএবং উত্সটির একটি মুছে ফেলা শাখা থাকে, মনে হয় এটি আমার সংগ্রহস্থলে আপডেট হয় না। আমি যখন git branch -rএটি এখনও দেখায় origin/DELETED_BRANCH

আমি এটা কিভাবে ঠিক করবো?


উত্তর:


811

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

git fetch -p

এটি দূরবর্তী শাখাগুলির স্থানীয় ডাটাবেস আপডেট করবে।


1
আপনাকে অনেক ধন্যবাদ. আমি নিজে আগে এই শাখাগুলি মুছে ফেলেছি।
মাকসিম দিমিত্রিভ

4
কোনও কারণে, আপনার আদেশ কার্যকর হয়নি, তবে এটি আমার originকাঁটাচামচের অস্তিত্বহীন দূরবর্তী শাখার জন্য করেছে : git fetch -p origin আমি তখন যখন git branch -r অস্তিত্বহীন দূরবর্তী শাখাটি আর দেখায় না।
oldfartdeveloper

11
সম্পূর্ণতার জন্য: এটি অবশ্যই যথাক্রমে স্ট্যাকওভারফ্লো . com/ a / 6127884/ 94687 এবং স্ট্যাকওভারফ্লো . com / a/ 17983126 / 94687 এ উল্লিখিত সমান git remote prune originএবং সমান হতে হবে । git pull --prune
ইম্জ - ইভান জাকারিয়াশেভ

6
ছেলেরা যখন আমি এটি করি এটি বলছে [deleted] (none) -> origin/ < branch name >এবং শাখাটি এখনও স্থানীয় রেপোতে দেখানো হয়েছে কেন কোনও ধারণা?
বুধু 1৪১

4
আমি একটি বার্তা পেয়েছি যে বলছে আমার শাখাগুলি মুছে ফেলা হয়েছে, তবে git branchএখনও চলছে এমন শাখাগুলি দেখায় যা অনুমিতভাবে মুছে ফেলা হয়েছিল।
sdfsdf

91

Http://www.gitguys.com/topics/adding-and-removing-remote-branches/ থেকে

কেউ রিমোট রিপোজিটরি থেকে একটি শাখা মুছে ফেলার পরে, যখন ব্যবহারকারী কোনও গিট টান বা গিট আনতে পারে তখন গিটটি স্বয়ংক্রিয়ভাবে স্থানীয় সংগ্রহস্থলগুলি মুছবে না। তবে, ব্যবহারকারী যদি দূরবর্তী সংগ্রহস্থলে মুছে ফেলা সমস্ত স্থানীয় ট্র্যাকিং শাখা তাদের স্থানীয় সংগ্রহশালা থেকে মুছে ফেলাতে চান তবে তারা টাইপ করতে পারেন:

গিট রিমোট ছাঁটাই উত্স

একটি নোট হিসাবে, -p পরম থেকে আসল git fetch -pঅর্থ "ছাঁটাই"।
আপনি যেভাবেই চয়ন করেছেন, অ-বিদ্যমান রিমোট শাখাগুলি আপনার স্থানীয় সংগ্রহশালা থেকে মুছে ফেলা হবে।


আমি এটি পছন্দ করি কারণ এটি নতুন কিছু আনেনি fet
মারেক আর

30

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

git fetch -p

আপনার শাখার তালিকাটি সিঙ্ক্রোনাইজ করার জন্য। Git ম্যানুয়াল বলেছেন

-p, --prune
আনার পরে, রিমোটে থাকা কোনও রিমোট-ট্র্যাকিং রেফারেন্স সরিয়ে ফেলুন। ট্যাগগুলি কেবল ছাঁটাইয়ের বিষয় নয় যদি সেগুলি কেবলমাত্র ডিফল্ট ট্যাগ স্বতঃ-অনুসরণ বা কোনও --tagsবিকল্পের কারণে আনা হয় । তবে, যদি কোনও স্পষ্ট রেফস্পেকের কারণে ট্যাগগুলি আনা হয় (কমান্ড লাইনে বা রিমোট কনফিগারেশনে উদাহরণস্বরূপ, যদি দূরবর্তীটি --mirrorবিকল্পটি দিয়ে ক্লোন করা হত ), তবে সেগুলিও ছাঁটাইয়ের বিষয়।

আমি ব্যক্তিগতভাবে ব্যবহার করতে চাই git fetch origin -p --progressকারণ এটি একটি অগ্রগতি সূচক দেখায়।


11

এটি আমার পক্ষে কাজ করেছে।

git remote update --prune

6

সম্পর্কিত git fetch -p, এর আচরণটি গিট 1.9-এ পরিবর্তিত হয়েছে এবং কেবল গিট 2.9.x / 2.10 এর প্রতিফলন ঘটায়।

দেখুন কমিট 9e70233 দ্বারা (13 জুন 2016) জেফ কিং ( peff)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 1c22105 , 06 জুলাই 2016)

fetch: দস্তাবেজ যে আনার আগে ছাঁটাই হয়

এটি 10a6cc8 এ পরিবর্তন করা হয়েছিল ( fetch --prune: আনার আগে ছাঁটাই চালান, 2014-01-02) তবে মনে হয় যে আলোচনার কেউ বুঝতে পারেনি আমরা স্পষ্টভাবে "পরে" বিজ্ঞাপন দিচ্ছি

সুতরাং নথিতে এখন বলা হয়েছে:

আনার আগে , রিমোটে থাকা কোনও রিমোট-ট্র্যাকিং রেফারেন্স সরান

এই কারণে:

যখন আমাদের frotz/nitfolআগের ফিঞ্চ থেকে " " নামক একটি রিমোট ট্র্যাকিং শাখা রয়েছে এবং এখন প্রবাহের " frotz" নামক একটি শাখা রয়েছে , আনতে " frotz/nitfol" "দিয়ে" git fetch --prune"আপস্ট্রিম থেকে অপসারণ করতে ব্যর্থ হবে । গিট git remote pruneসমস্যাটি সমাধানের জন্য ব্যবহারকারীকে " " ব্যবহার করতে জানায় ।

fetch --pruneআনার ক্রিয়াকলাপের আগে ছাঁটাই অপারেশন সরিয়ে " " কাজ করার উপায়টি পরিবর্তন করুন। এইভাবে, কোনও বিরোধকে ব্যবহারকারীকে সতর্ক করার পরিবর্তে এটি স্বয়ংক্রিয়ভাবে এটিকে ঠিক করে দেয়।

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