Git दूरस्थ शाखाओं की सूची को कब ताज़ा करता है?


495

का प्रयोग git branch --allसे पता चलता है सभी दूरस्थ और स्थानीय शाखाओं। Git इस सूची को कब ताज़ा करता है?

पुल / पुश पर? और मैं इसे Git Bash का उपयोग करके कैसे ताज़ा करूँ ?


5
नोट के रूप में, git ls-remoteयहां दिलचस्प हो सकता है।
jthill

जवाबों:


1219

दूरस्थ शाखाओं की स्थानीय सूची को अद्यतन करने के लिए:

git remote update origin --prune

उन सभी स्थानीय और दूरस्थ शाखाओं को दिखाने के लिए जिनके बारे में (स्थानीय) Git को पता है

git branch -a

143
git remote update origin --pruneमैं क्या देख रहा था thx
WonderLand

6
इस उत्तर के बीच अंतर पर, जो उपयोग करता है git remote update, और स्वीकृत उत्तर, जो उपयोग करता है git fetch, यहां देखें
लाल मटर

6
यह सही जवाब है। git fetchदूरस्थ शाखाओं के मेरे स्थानीय कैश को नहीं हटाया। केवल --pruneयह सब साफ करने में सक्षम था।
फेलिप अल्वारेज़

23
आप स्वचालित रूप से ऐसा कर सकते हैंgit config remote.origin.prune true
kjhf

8
git remote prune originएक ही प्रभाव है और आप कम टाइप करते हैं।
ड्विन

27

मेरा मानना ​​है कि यदि आप git branch --allबैश से भागते हैं, तो आपके द्वारा देखी जाने वाली दूरस्थ और स्थानीय शाखाओं की सूची यह दर्शाती है कि आपके स्थानीय गिट "कमांड को चलाने के समय" क्या जानते हैं। क्योंकि आपका Git आपके सिस्टम में स्थानीय शाखाओं के संबंध में हमेशा अपडेट रहता है, इसलिए स्थानीय शाखाओं की सूची हमेशा सटीक रहेगी।

हालाँकि, दूरस्थ शाखाओं के लिए ऐसा नहीं होना चाहिए। आपका स्थानीय Git केवल उन दूरस्थ शाखाओं के बारे में जानता है, जिन्हें उसने पिछले भ्रूण (या पुल) में देखा है। इसलिए यह संभव है कि आप एक नई दूरस्थ शाखा देखें git branch --allऔर देखें जो पिछली बार आपके द्वारा खींचे जाने या खींचने के बाद दिखाई दी हो

यह सुनिश्चित करने के लिए कि आपकी स्थानीय और दूरस्थ शाखा सूची अद्यतित हो, आप दौड़ने git fetch से पहले कर सकते हैं git branch --all

आगे की जानकारी के लिए, "रिमोट" शाखाएं जो आपके चलने पर दिखाई देती git branch --allहैं, वे वास्तव में बिल्कुल भी दूरस्थ नहीं हैं; वे वास्तव में स्थानीय हैं। उदाहरण के लिए, मान लीजिए कि रिमोट पर एक शाखा हो, featureजिसे आपने अपने स्थानीय गिट में कम से कम एक बार खींचा हो। origin/featureजब आप चलते हैं तो आपको एक शाखा के रूप में सूचीबद्ध देखा जाएगा git branch --all। लेकिन यह शाखा वास्तव में एक स्थानीय गिट शाखा है। जब आप ऐसा करते हैं git fetch origin, तो यह ट्रैकिंग शाखा रिमोट से किसी नए परिवर्तन के साथ अपडेट हो जाती है। यही कारण है कि आपकी स्थानीय स्थिति बासी हो सकती है, क्योंकि नई दूरस्थ शाखाएं हो सकती हैं, या आपकी ट्रैकिंग शाखाएं बासी हो सकती हैं।


4
हाँ, git fetchयह किया है।
बेंडएग

14
डाउनवोटर्स पर ध्यान दें: यदि आप एक सुविचारित स्पष्टीकरण के साथ सही जानकारी महसूस करते हैं, तो डाउनवोट के हकदार हैं, तो कम से कम बोलें और टिप्पणी छोड़ें।
टिम बेगेलिएसेन

3
git fetchमेरे लिए काम नहीं करता है, जोड़ने की जरूरत है --prune। ); Btw, मैं नहीं downvoter हूँ
Deqing

3
git fetchहटाए गए दूरस्थ शाखाओं को नहीं हटाता है। शायद यही कारण है कि कुछ लोगों ने
नीचा दिखाया

@ JérômeMEVEL यह मेरे लिए एक चमत्कार है कि स्वीकृत जवाब में अब 1000 अपवोट हैं। वह पागल है ... काश मेरे पास उस तरह का एक्सपोज़र होता :-)
टिम बेज़लगेसेन

24

ओपी ने सभी रिमोट के लिए सफाई नहीं मांगी, बल्कि डिफ़ॉल्ट रिमोट की सभी शाखाओं के लिए।

तो git fetch --pruneक्या उपयोग किया जाना चाहिए।

सेटिंग स्वचालित git config remote.origin.prune trueबनाता है --prune। उस मामले में बस git fetchस्थानीय कॉपी से बासी दूरस्थ शाखाओं को भी चुभेगा। Git लाने या खींचने के साथ स्वचालित prune भी देखें ।

ध्यान दें कि यह स्थानीय शाखाओं को साफ नहीं करता है जो अब दूरस्थ शाखा को ट्रैक नहीं कर रहे हैं। देखें कि स्थानीय ट्रैकिंग शाखाएं कैसे प्रींट करें जो उस के लिए रिमोट पर मौजूद नहीं हैं


इसे थोड़ा छोटा करने के लिएgit fetch -p
माइकल वार्नर

2

git fetchसभी नवीनतम बनाई गई शाखाओं को लाने के लिए उपयोग करें ।


1
git fetch2.17.1.1 के साथ मेरे लिए कुछ भी नहीं बदला। आप किस संस्करण और विकल्पों का उपयोग कर रहे हैं?
पॉइंटएयर्स

2
आपको --pruneया तो या इसके git config remote.NAME.prune trueलिए ओपी प्रश्न हल करने की आवश्यकता है
ओलिवर

-1

यदि आप ग्रहण का उपयोग कर रहे हैं और ऊपर से नई शाखाएँ देखना चाहते हैं;

Git परिप्रेक्ष्य में, Git रिपॉजिटरी पर राइट क्लिक करें और फिर "Fetch from Upstream" चुनें। इससे नई दूरस्थ शाखाएँ प्राप्त होती हैं।


-8

यदि आप ग्रहण का उपयोग कर रहे हैं,

  1. "Git Repositories" खोलें
  2. अपनी रिपोजिटरी खोजें।
  3. "शाखाएँ" फिर "रिमोट ट्रैकिंग" खोलें।

Git

वे सब वहाँ होना चाहिए। राइट क्लिक करें और "चेकआउट करें।"


यह प्रश्न का उत्तर कैसे देता है? - "जब Git दूरस्थ शाखाओं की सूची को ताज़ा करता है?"
पीटर मोर्टेंसन

जब मैं अपनी स्थानीय शाखाओं को ग्रहण में ताज़ा करना चाहता था, मैं गुगला गया और मुझे यहाँ ले गया। इस पोस्ट ने वास्तव में कुछ लोगों की मदद की है क्योंकि इसमें कुछ उतार चढ़ाव आए हैं। शायद मैं इस सवाल को गलत समझ गया। मेरे लिए, ग्रहण IS Git (इसका इंटरफ़ेस) है। सभी को नाराज करने के लिए क्षमा करें!
मार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.