[Git] दिखा रहा है कि दो संशोधनों के बीच कौन सी फाइलें बदली हैं



Answers

प्रयत्न

$ git diff --stat --color master..branchName

यह आपको प्रत्येक बदलाव के बारे में अधिक जानकारी देगा, जबकि अभी भी लाइनों की एक ही संख्या का उपयोग कर रहा है।

यदि आप दूसरे तरीके से विलय करना चाहते हैं तो आप अंतर की एक स्पष्ट तस्वीर प्राप्त करने के लिए शाखाओं को भी फ़्लिप कर सकते हैं:

$ git diff --stat --color branchName..master
Question

मैं दो शाखाओं को विलय करना चाहता हूं जो थोड़ी देर के लिए अलग हो गए हैं और जानना चाहते हैं कि कौन सी फाइलें संशोधित की गई हैं।

इस लिंक पर आया: http://linux.yyz.us/git-howto.html जो काफी उपयोगी था।

शाखाओं की तुलना करने के लिए उपकरण जो मैंने पूरे किए हैं:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

यह सोच रहा था कि "गिट स्टेटस मास्टर..ब्रैंच" जैसी कुछ चीजें हैं जो केवल उन फाइलों को देखने के लिए हैं जो दोनों शाखाओं के बीच अलग हैं।

एक नया टूल बनाने के बिना, मुझे लगता है कि यह अब निकटतम है जो आप अभी कर सकते हैं (यदि एक फ़ाइल को एक से अधिक बार संशोधित किया गया था तो निश्चित रूप से दोहराया जाएगा):

  • git diff master..branch | grep "^diff"

क्या सोच रहा था कि कुछ ऐसा है जो मुझे याद आया ...




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

यदि आपका अपस्ट्रीम स्थानांतरित हो सकता है, तो आपको यह करना चाहिए:

git fetch
git diff origin/master...

गिट diff मास्टर का उपयोग करने में शामिल हो सकते हैं, या प्रासंगिक परिवर्तनों को शामिल करने में असफल हो सकते हैं।




अगर कोई दो शाखाओं से एक diff फ़ाइल उत्पन्न करने की कोशिश कर रहा है:

git diff master..otherbranch > myDiffFile.diff



दो शाखाएं कहती हैं

  • ए (शाखा जिस पर आप काम कर रहे हैं)
  • बी (एक और शाखा जिसके साथ आप तुलना करना चाहते हैं)

शाखा ए में होने के नाते आप टाइप कर सकते हैं

git diff --color B

तो यह आपको एक आउटपुट देगा

इसके बारे में महत्वपूर्ण बिंदु है

  1. हरे रंग में पाठ शाखा ए में मौजूद है

  2. लाल रंग में पाठ शाखा बी में मौजूद है




एक जीयूआई आधारित विधि भी है।

आप गिटक का उपयोग कर सकते हैं।

  1. चलाएँ:

    $ gitk --all
    
  2. शाखा की प्रतिबद्धता पर राइट क्लिक करें और पॉप-अप मेनू में इस प्रतिबद्धता को चिह्नित करें का चयन करें।

  3. किसी अन्य शाखा की प्रतिबद्धता पर राइट क्लिक करें और इसे डिफ करें -> चिह्नित प्रतिबद्ध या डिफ चिह्नित प्रतिबद्ध -> यह

फिर दाहिने तल पैनल में एक बदली गई फाइल सूची और बाएं निचले पैनल में diff विवरण होंगे।




उदाहरण के लिए TortoiseGit का उपयोग करके आप आसानी से बदली गई फ़ाइलों के लिए शाखाओं की तुलना भी कर सकते हैं। बस ब्राउज़ संदर्भों पर क्लिक करें और उन शाखाओं को चुनें जिन्हें आप तुलना करना चाहते हैं।

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

रेमबर्ग कि यदि आप अपनी शाखा और मास्टर के साथ अपनी शाखा के साथ मास्टर की तुलना करते हैं तो आपके पास अलग-अलग परिणाम होंगे।




और यदि आप केवल कुछ फाइलों के बीच परिवर्तन की तलाश में हैं, तो:

git diff branch1 branch2 -- myfile1.js myfile2.js

शाखा 1 वैकल्पिक है और आपकी वर्तमान शाखा (जिस शाखा पर आप हैं) डिफ़ॉल्ट रूप से माना जाएगा यदि शाखा 1 प्रदान नहीं किया गया है। उदाहरण के लिए:

git diff master -- controller/index.js



Links