दिलचस्प पोस्ट
मेटप्ललिब स्कैटरप्लॉट; रंग एक तीसरे चर के एक समारोह के रूप में LINQ का उपयोग करके सूची में डुप्लिकेट निकालें सेलेनियम वेबड्रिवर पृष्ठ के बाहर एक लिंक पर क्लिक नहीं कर सकते कैसे PHP में कर्ल त्रुटियों को पकड़ने के लिए विधि पैरामीटर और स्थानीय चर के लिए अंतिम उपयोग करना चाहिए? स्प्रिंग बूट और एकाधिक बाहरी कॉन्फ़िगरेशन फ़ाइलें कोण 4 में HTTP और HTTPClient के बीच का अंतर? JSON.net: डिफ़ॉल्ट कन्स्ट्रक्टर का उपयोग किए बिना कैसे deserialize करें? अपवाद क्यों है। प्रिंट स्टैक्सट्रेस () बुरा व्यवहार माना जाता है? Google क्रोम "window.open" समाधान? HTML5: "रेडियो" इनपुट फ़ील्ड के साथ "अपेक्षित" विशेषता का उपयोग कैसे करें प्रत्येक सरणी के txt फ़ाइल को नए सरणी तत्व में पढ़ें सास में चयनकर्ता के मध्य को संशोधित करना (वर्गों को जोड़ने / हटाने आदि) अगर PHP में mod_rewrite सक्षम है तो कैसे जांचें? लिनक्स पर्यावरण चर नामों में अनुमत वर्ण

गिट का उपयोग करना, सभी शाखाओं में हैं, लेकिन अन्य (अन्य)

मेरे पास एक पुरानी शाखा है, जिसे मैं हटाना चाहूंगा हालांकि, ऐसा करने से पहले, मैं यह जानना चाहता हूं कि इस शाखा में किए गए सभी कमान किसी बिंदु पर किसी अन्य शाखा में विलय कर दिए गए थे। इस प्रकार, मैं अपनी मौजूदा शाखा में किए गए सभी कमानों को देखना चाहता हूं जो कि किसी अन्य शाखा में लागू नहीं हुई हैं [या, यदि यह कुछ स्क्रिप्टिंग के बिना संभव नहीं है, तो एक शाखा में सभी कमान कैसे दिखता है जो कि लागू नहीं किया गया है किसी अन्य शाखा को?]

वेब के समाधान से एकत्रित समाधान "गिट का उपयोग करना, सभी शाखाओं में हैं, लेकिन अन्य (अन्य)"

आप शायद सिर्फ चाहते हैं

git branch --contains branch-to-delete 

यह उन सभी शाखाओं की सूची देगा जिनमें "शाखा-टू-डिलीट" के कमान शामिल हैं। अगर यह "शाखा टू टू डिलीट" से अधिक की रिपोर्ट करता है, तो शाखा को विलय कर दिया गया है।

आपके विकल्प सचमुच सिर्फ पुनरी सूची सिंटैक्स चीजें हैं उदाहरण के लिए git log one-branch..another-branch पता चलता है कि one-branch को one-branch जरूरत होती है।

आपको यह देखने के लिए कि क्या कहां है, git show-branch में रुचि हो सकती है

एक शाखा की एक सूची देखने के लिए, लेकिन कोई अन्य नहीं, जीआईटी लॉग का उपयोग करें:

 git log oldbranch ^newbranch --no-merges 

… यही है, पुराने ब्रांच पर सभी कमानों के लिए लॉग्स दिखाएं जो कि नए ब्रांच पर नहीं हैं। आप शामिल करने और बहिष्कृत करने के लिए कई शाखाएं सूचीबद्ध कर सकते हैं, उदा

 git log oldbranch1 oldbranch2 ^newbranch1 ^newbranch2 --no-merges 

नोट: Windows पर ^ एस्केप कुंजी है, इसलिए इसे किसी अन्य के साथ बचने की आवश्यकता है:

 git log oldbranch ^^newbranch --no-merges 

यहां पोस्ट किए गए कुछ उत्तर यहां आपकी मदद के लिए ढूंढने में मदद करेंगे, जबकि जीआईटी शाखा के उप-कमांड आपके कार्य के लिए एक अधिक उपयुक्त समाधान है।

– मिर्ज किए गए सभी शाखाएं जो कि सुरक्षित रूप से हटाई जा सकती हैं खोजने के लिए उपयोग की जाती हैं, क्योंकि उन शाखाएं पूरी तरह से प्रमुख हैं।

master किसी एक को सुरक्षित रूप से निकालने वाली शाखाओं की गणना करने के लिए कमांड चला सकता है, इस प्रकार से:

 git branch --merged develop fpg_download_links * master master_merge_static # Delete local and remote tracking branches you don't want git branch -d fpg_download_links git push origin :fpg_download_links git branch -d master_merge_static git push origin :master_merge_static # There is also a flag to specify remote branches in the output git branch --remotes --merged 

पुराने ब्रांच में प्रतिबद्धता दिखाने के लिए, लेकिन नए ब्रांड में नहीं:

 git log newbranch..oldbranch 

इन कमानों से अंतर दिखाने के लिए (ध्यान दें कि तीन बिंदु हैं):

 git diff newbranch...oldbranch 

यहां दस्तावेज़ चित्रण के साथ एक डॉक्टर है https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#Commit-Ranges

उन लोगों के लिए जो अभी भी एक सरल उत्तर की तलाश में हैं, जीआईटी चेरी की जांच करें यह हैश के बजाए वास्तविक डिफम्स की तुलना करता है इसका अर्थ यह है कि जो चेरी को चुना गया है या रिबैस किया गया है, वह उनको समायोजित करता है।

उस शाखा की पहली जांच करें जिसे आप हटाना चाहते हैं:

git checkout [branch-to-delete]

तो अपने मुख्य विकास शाखा से तुलना करने के लिए git चेरी का उपयोग करें:

git cherry -v master

उदाहरण आउटपुट:

 + 8a14709d08c99c36e907e47f9c4dacebeff46ecb Commit message + b30ccc3fb38d3d64c5fef079a761c7e0a5c7da81 Another commit message - 85867e38712de930864c5edb7856342e1358b2a0 Yet another message 

नोट: -v फ्लैग एसएचए हैश के साथ प्रतिबद्ध संदेश को शामिल करना है

सामने में '+' वाली रेखाएं शाखा से हटाना होती हैं, लेकिन मास्टर शाखा नहीं हैं। जिनके सामने '-' वाले हैं, वे स्वामी के समान प्रतिबद्ध हैं।

केवल उन चीजों के लिए जो मास्टर में नहीं हैं, चैरी चुनते हैं grep के साथ:

git cherry -v master | grep "^\+"

उदाहरण आउटपुट:

 + 8a14709d08c99c36e907e47f9c4dacebeff46ecb Commit message + b30ccc3fb38d3d64c5fef079a761c7e0a5c7da81 Another commit message 

jimmyorr का जवाब विंडोज पर काम नहीं करता है यह इसके बजाय ^ बजाय – उपयोग करने में मदद करता है:

 git log oldbranch --not newbranch --no-merges 

यदि यह एक (एकल) शाखा है जिसे आपको चेक करना है, उदाहरण के लिए यदि आप चाहते हैं कि शाखा 'बी' पूरी तरह से शाखा 'ए' में विलय हो, तो आप बस निम्न कार्य कर सकते हैं:

 $ git checkout A $ git branch -d B 

git branch -d <branchname> सुरक्षा है कि "शाखा को पूरी तरह से सिर में विलय कर दिया जाना चाहिए।"

ध्यान दें कि यह वास्तव में शाखा को नष्ट कर देता है यदि इसे मर्ज किया गया है,

आप इस सरल स्क्रिप्ट का उपयोग उन कॉमट्स देखने के लिए कर सकते हैं जो मर्ज नहीं किए गए हैं

 #!/bin/bash # Show commits that exists only on branch and not in current # Usage: # git branch-notmerge <branchname> # # Setup git alias # git config alias.branch-notmerge [path/to/this/script] grep -Fvf <(git log --pretty=format:'%H - %s') <(git log $1 --pretty=format:'%H - %s') 

आप उपकरण git-wtf भी उपयोग कर सकते हैं जो शाखाओं की स्थिति को प्रदर्शित करेगा

दो शाखाओं के बीच लापता कमिट्स सूचीबद्ध करने के लिए, आप तुलना कर सकते हैं- branches.py

https://bitbucket.org/aakef/compare-git-branches

जीआईटी होस्टिंग सेवा के माध्यम से एक पुल अनुरोध बनाएँ जो आप उपयोग कर रहे हैं यदि शाखा पूरी शाखा में पूरी तरह से विलय कर दी गई है, तो आप नए पीआर को बनाने में असमर्थ होंगे।

उदाहरण के लिए, GitHub पर:

तुलना करने के लिए कुछ भी नहीं है

शाखाओं के लिए एक पीआर नहीं बना सकते हैं जो मर्ज किए गए हैं।

यह कमांड लाइन पर git का उपयोग नहीं करता है, लेकिन मुझे अक्सर यह पता चलता है कि किसी अन्य रहस्यमयी git कमांड को याद करने के बजाय एक स्पष्ट मानसिक मॉडल के साथ अपने निपटान में अन्य टूल का उपयोग करना उपयोगी है।