গিট রিমোট শাখাটি মুছে ফেলা হয়েছে, তবে এটি এখনও 'শাখা -a' এ প্রদর্শিত হবে


552

ধরা যাক coolbranchআমার ভান্ডারে আমার একটি শাখা ছিল ।

এখন, আমি এটিকে (দূরবর্তী ও স্থানীয়ভাবে উভয়ই) মোছার সিদ্ধান্ত নিয়েছি:

git push origin :coolbranch
git branch -D coolbranch

গ্রেট! এখন শাখাটি সত্যিই মুছে ফেলা হয়েছে।

তবে আমি যখন দৌড়ে যাই

git branch -a

আমি এখনও পেতে:

remotes/origin/coolbranch

লক্ষ্য করার মতো বিষয়টি হ'ল, যখন আমি একটি নতুন সংগ্রহস্থলটি ক্লোন করি, তখন সবকিছু ঠিক থাকে এবং git branch -aশাখাটি প্রদর্শন করে না।

আমি জানতে চাই - branch -aকোনও নতুন উদাহরণ ক্লোন না করে তালিকা থেকে শাখাটি মোছার কোনও উপায় আছে কি ?



58
আপনি git fetch -p(বা git pull -p) তবে দূরবর্তী শাখা ছাঁটাই করা হবে।
yoyo

উত্তর:


688

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

git branch -d -r origin/coolbranch

( -rভুলে যাওয়া সহজ ...)

-rএই ক্ষেত্রে " -dদূরবর্তী ট্র্যাকিং শাখাগুলি তালিকাবদ্ধ বা মুছে ফেলা (যদি ব্যবহার করা হয় )।" এখানে পাওয়া গিট ডকুমেন্টেশন অনুসারে: https://git-scm.com/docs/git-branch


11
git remote prune originঅথবা git fetch --pruneপতাকাঙ্কের কোনও রূপই আমার ক্ষেত্রে কার্যকর হয়নি। ... কিন্তু git branch -d -r origin/feature/branch-nameকাজ করেছে। আমি নিশ্চিত নই যে এটির featureনামস্থান (গিট ফ্লো) এর অধীনে এর সাথে কিছু করার ছিল কিনা তবে এটি কোনওভাবেই হ্রাস পেয়েছে, যদি কোনও গুগোলার তাদের ক্ষেত্রে এটি ঘটে তা খুঁজে পায়।
মিস্টারপার্কার

8
এটি প্রয়োজনীয় কারণ আছে? এই অস্তিত্বের শাখার তালিকাকে তালিকায় ছেড়ে দেওয়া এবং স্বয়ংক্রিয়ভাবে ছাঁটাই না করা সত্যিই খারাপ বলে মনে হচ্ছে।
অ্যাক্রোনিম

296

চেষ্টা করুন:

git remote prune origin

থেকে গীত দূরবর্তী ডকুমেন্টেশন :

আলুবোখারা

<বাসী> এর অধীনে সমস্ত বাসি দূরবর্তী ট্র্যাকিং শাখাগুলি মুছে ফেলে। এই বাসি শাখাগুলি <নাম> দ্বারা উল্লিখিত রিমোট রিপোজিটরি থেকে ইতিমধ্যে সরানো হয়েছে, তবে স্থানীয়ভাবে "রিমোট / <নাম>" এ উপলব্ধ।

--Dry-run অপশনের সাহায্যে কোন শাখাগুলি ছাঁটাই করা হবে তা জানান, তবে সেগুলি ছাঁটাই করবেন না।


1
সম্পূর্ণতার জন্য: এটা অনুরূপ হওয়া আবশ্যক git pull --pruneপদে উল্লেখিত stackoverflow.com/a/17983126/94687 : এবংgit remote update --prune
ইভান Zakharyaschev - imz

230

ভয়ঙ্কর ভুলবেন না

git fetch -p

যা সমস্ত উত্স আনে এবং ছাঁটাই করে।


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

2
আপনি চালিত থাকলে তবে শাখাগুলি এখনও দৃশ্যমান হবেgit branch -a
নিখিল সাহু

1
@ নিখিলসাহু: রিমোট শাখাগুলি আমি আর দেখছি না যেগুলি দিয়ে আর সরানো হয়েছেgit branch -a
ব্যবহারকারী 276648

20

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

git branch –D branch-name (delete from local)
git push origin :branch-name (delete from remote)

তারপরে ব্যবহারকারীগণ পরিবর্তনগুলি টানতে গেলে তাদের নিম্নলিখিতগুলি করা দরকার:

git fetch -p

git branch -d branch-nameআমার জন্য কাজ। লক্ষ্য করুন -Dথেকে -d। আসলে আমি যখন বড় হাতের ডি দিয়ে চেষ্টা করেছি তখন -Dএটি নাম দিয়ে একটি নতুন শাখা তৈরি করেছে
আরপি-

1
"-D" মুছে ফেলা বা একীভূত স্থিতি নির্বিশেষে মুছে ফেলতে বাধ্য করার একটি উপায়। অবশ্যই এটি ব্যবহারে সতর্কতা অবলম্বন করুন, তবে অনেক ক্ষেত্রে এটি প্রয়োজনীয় ছিল necessary
ছায়াওয়াইল

19

ব্যবহার করুন:

git remote prune <remote>

কোথায় <remote>মত একটি দূরবর্তী উৎস নাম উৎপত্তি বা মূল প্রজেক্টের

উদাহরণ: git remote prune origin


3
ভবিষ্যতে পাঠকদের জন্য এখানে পার্থক্য git remote prune, git prune,git fetch --prune
এমিল বার্গারন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.