2010-09-25 18 views
25

के diff को कैसे देखें, मैंने जिथब पर एक प्रोजेक्ट फोर्क किया है और मैंने अलग-अलग प्रारूपों में फोकस किए जाने के बाद किए गए बदलावों का एक सेट सेट करने की आवश्यकता है।फोर्कड जिथब प्रोजेक्ट

यदि आपको आश्चर्य है - मैंने अपाचे httpd को फोर्क किया है और मैं कोर में कुछ कोड बदल रहा हूं। वर्तमान में मैं किसी भी बदलाव को नहीं कर रहा हूं, गिट diff चला रहा हूं, और एक आरपीएम बिल्डिंग प्रक्रिया में वेनिला httpd स्रोतों के खिलाफ पैच के रूप में अपने आउटपुट का उपयोग कर रहा हूं। यह निश्चित रूप से गलत है, लेकिन मुझे नहीं पता कि इसे ठीक से कैसे किया जाए। मुझे पता है कि मुझे अंत में एक अंतर की जरूरत है।

उत्तर

25
  • अपने स्थानीय रेपो पर एक दूरस्थ एक के रूप में मूल GitHub रेपो (एक आप अलग किया गया है) जोड़ें।
    (git remote add mainRepo github_url)
  • git fetch mainRepo कि मूल "mainRepo" से नवीनतम परिवर्तन प्राप्त करने के लिए।
  • git log HEAD..mainRepo/master आपको मेन्रिपो मास्टर शाखा और आपकी वर्तमान शाखा पर नवीनतम के बीच अपने सभी परिवर्तन दिखाएगा।
    git diff HEAD..mainRepo/master इसे diff प्रारूप में प्रदर्शित करेगा।

learn.GitHub में:

git diff mainRepo/master...HEAD 

अपने सभी परिवर्तनों की सूची के बाद से आप mainRepo से अलग किया:

यह आखिरी 'गुरु' शाखा स्नैपशॉट और पिछले 'की तुलना नहीं होगा देव 'स्नैपशॉट - इसके बजाय यह' देव 'दोनों के सामान्य पूर्वजों की तुलना करेगा। यह आपको बताएगा कि शाखा बिंदु के बाद से क्या बदल गया है।

+0

आपको बहुत बहुत धन्यवाद, इससे मेरी समस्या हल करती है। मुझे गिट दर्शन को गहराई से समझने के लिए निश्चित रूप से कुछ समय बिताना होगा। – GDR

+0

+1। अगर मैं दो नोट्स जोड़ सकता हूं: मेरा मानना ​​है कि यदि आप वर्तमान में सिर पर हैं तो हेड पार्ट्स अनावश्यक हैं। इसके अलावा, यदि आप अपने कॉन्फ़िगर किए गए difftool में परिवर्तन देखना चाहते हैं, तो 'git difftool mainrepo/master' और' git difftool ..mainrepo/master' उपयोगी हैं। –

+0

TortoiseGit के माध्यम से एक फोर्कड प्रोजेक्ट के diffs को कैसे देखें - http://stackoverflow.com/a/7297491/968003 –

3

आप एक शाखा है कि अपने भंडार के लिए "नदी के ऊपर" रेपो पटरियों धक्का है, तो आप अपने आप में GitHub diff भी देख सकते हैं:

git remote add mainRepo github_url 
git fetch mainRepo 
git branch main_repo_master mainRepo/master 
git push origin main_repo_master 

तो इस तरह यह ऑनलाइन देखें:

https://github.com/rdp/mplayer-svn/compare/master ... main_repo_master

रेफरी: http://betterlogic.com/roger/2012/04/github-compare-commits

2

प्राप्त करें माता-पिता/कांटा बिंदु SHA1: git merge-base master HEAD प्राप्त diff: git diff <sha1>

या एक आदेश में: git difftool $(git merge-base master HEAD)

कौन सा चीनी आदेश रूप में ही है: git diff master...HEAD

0

यह एक पुरानी सवाल है, लेकिन मैं सिर्फ एक पाया पर बहुत अच्छी विधि Github से सीधे पैच या diff फ़ाइल प्राप्त करें।

जब आप अपने कांटे पर हैं, तो "तुलना करें" लिंक है। इसका उपयोग करके आप तुलना दृश्य में जा रहे हैं।

उदाहरण

https://github.com/luisgoncalves/xades4j/compare/master...beat2:master 

अब आप मैन्युअल इस यूआरएल के अंत में या तो ".diff" या ".patch" जोड़ सकते हैं, और आप सीधे अपने ब्राउज़र में फ़ाइल मिलता है।

उदाहरण

https://github.com/luisgoncalves/xades4j/compare/master...beat2:master.diff 

स्रोत: https://github.com/blog/967-github-secrets

संबंधित मुद्दे