গিট: দূরবর্তী শাখার তথ্য আপডেট করা


125

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

git branch -r

মুছে ফেলা শাখাটি এখনও দেখায় (এবং আমি এটি পরীক্ষা করে দেখতে পারি)

এই তথ্যটি আপডেট করার জন্য আমার কোন গিট কমান্ড চালাতে হবে?

উত্তর:


39

এমন কিছু পারফর্ম করলে

git branch -d -r remote_name/branch_name

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

সমাধান:

git push origin :branch_name

রিমোট শাখাটি মুছে ফেলবে (':' নোট করুন), এবং,

git branch -d branch_name

আপনার স্থানীয় চেকআউট সরানো হবে।

( রেফারেন্স )


146
আপনার দূরবর্তী রেফারেন্সগুলি পরিষ্কার করার জন্য আপনি 'গিট রিমোট প্রুনে উত্স' চালাতে পারেন।
সে.এম.সি.গিন্টি

3
এটি দূরবর্তী সংগ্রহস্থল দ্বারা ট্র্যাক করা সমস্ত শাখা সরিয়ে ফেলবে। সুতরাং, শুধু সাবধান।
গ্যারেট হাইড

4
আমি মনে করি এটি জেনে রাখাও দরকারী যে, যদিও আরও কিছুটা ভার্বোস, আপনি git push <remote> --delete <branchname>দূরবর্তী শাখাগুলিও মুছতে ব্যবহার করতে পারেন ।
এ্যারোক্রস

এটি সাধারণত কাজ করে, তবে আমি আজ এমন একটি পরিস্থিতি জুড়ে ক্যামেরা করছি যেখানে রিমোট তালিকাটি আপডেট করা হয়নি, তাই আমি সেখানে নেই এমন একটি শাখা মুছে ফেলার চেষ্টা করছিলাম। সুতরাং নীচে @ ফ্লোর সমাধানটি প্রথমে প্রয়োজনীয় ছিল।
dgo

284

যদি এটি দূরবর্তী সংগ্রহস্থলের শাখাগুলি মুছে ফেলা হয় এবং আপনি সমস্ত স্থানীয় দূরবর্তী ট্র্যাকিং শাখা একবারে আপডেট করতে চান তবে আপনি ব্যবহার করতে পারেন

$ git remote prune <remotename>

প্রদত্ত রিমোটের জন্য সমস্ত বাসি দূরবর্তী ট্র্যাকিং শাখাগুলি মুছে ফেলতে (অর্থাত্ যেগুলি শাখা অনুসরণ করে যা দূরবর্তী সংগ্রহস্থলে সরানো হয়েছিল)।

git remoteডকুমেন্টেশন দেখুন ।


আপনার উত্তরগুলির জন্য আপনাকে @ কেসি এবং @ জাকবকে ধন্যবাদ! এটি কীভাবে আসে যে স্থানীয়ভাবে সঞ্চিত দূরবর্তী শাখার তথ্য পরবর্তী সময় ব্যবহার করার পরে আপডেট হয় না git fetch?
জেজেডি

4
@ জেজেডি: কারণ আপনি সম্ভবত আপনার কাজটি দূরবর্তী শাখায় ভিত্তি করে তৈরি করতে পারেন যা এখন আর নেই। এটি বিনা অনুরোধে অদৃশ্য হয়ে যাওয়ার জন্য এটি একটি খারাপ ধারণা বলে মনে করা হয়েছিল। এজন্য আপনাকে দূরবর্তী ট্র্যাকিং শাখাগুলি পরিষ্কারভাবে ছাঁটাই করতে হবে।
জাকুব নরবস্কি

"গিট গিসি" কি বাসি দূরবর্তী শাখাগুলি পরিষ্কার করে?
জেমস ওয়াল্ড

@ জামেসওয়াল্ড: না, তা হয় না। git gcকেবল বস্তু এবং রেফগুলি প্যাক করে এবং অযৌক্তিক অবজেক্টগুলিকে এটিতে থাকা অবস্থায় (কিছু সুরক্ষা মার্জিন সহ) মুছে দেয়।
জাকুব নরবস্কি

186
git remote update --prune

সমস্ত রিমোটের শাখাগুলিকে রিফ্রেশ করা উচিত, নতুন যুক্ত করা এবং মুছে ফেলা মুছতে হবে।

সম্পাদনা করুন: রিমোট আপডেট কমান্ড মূলত রিমোটের শাখার তালিকা নিয়ে আসে fet --pruneবিকল্পটি আপনার পরিত্রাণ পেতে হবে স্থানীয় দূরবর্তী ট্র্যাকিং শাখা যে শাখা বিন্দু যে এখন আর বিদ্যমান নেই দূরবর্তী


এটি আমার পক্ষে কাজ করেছে। আমার একটি দূরবর্তী শাখা অপসারণ করা দরকার যে কোনও কারণে সাধারণ 'গিট পুশ উত্স: <ব্র্যাঙ্ক_নেম'
n0denine

এটুকু বলা কি সঠিক হবে যে এই উত্তরটি যাকুব নারাবস্কির উত্তর এবং আরও কী করে? এটি, এটি ছাঁটাই করে এবং এটি আপডেটগুলি আনে?
ফ্রাঙ্ক টান

14

নতুন দূরবর্তী শাখা দেখার জন্যও দরকারী:

git fetch --all

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

সুন্দর এন সিম্পল থেক্স ডুড, বাসায় ব্রোঞ্জের উত্তর ব্যাজ আছে :)
danday74

2

দূরবর্তী শাখাগুলি মুছতে আপনি -rএবং -dপতাকাগুলি একত্রিত করতে পারেন ।


দুর্দান্ত টিপ! তবে, এই ক্ষেত্রে, এখানে বেশ কয়েকটি শাখা রয়েছে যা ইতিমধ্যে মুছে ফেলা হয়েছে, অবশ্যই এই আপডেটগুলি আনার জন্য একটি আদেশ রয়েছে
বাইন মার্কেভ

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