जीआईटी पुल के बाद कोड परिवर्तन कैसे देखें?


91

मैं ए करने के बाद किसी भी कोड परिवर्तन का निरीक्षण करना चाहूंगा git pull। वर्तमान में यह सिर्फ मुझे दिखा रहा है कि कौन सी फाइलें बदलती हैं। मैं कैसे देख सकता हूं कि कोड क्या बदला है?


का संदर्भ लें इस
unrealsoul007

जवाबों:


100
git log --name-status -2

आपको उन फ़ाइलों के नाम दिखाएगा जो पिछले दो कमिट के लिए बदल गए थे।

git log -p -2

आपको खुद बदलाव दिखाएगा।

खींचने से पहले,

git fetch
git log --name-status origin/master..

आपको दिखाएगा कि आप फ़ाइलों के नाम के साथ क्या पुनर्प्राप्त करने वाले हैं।


69

खींचने से पहले

आप विलय की समीक्षा कर सकते हैं जैसा कि @ भाई fetchऔर diffविलय से पहले कहते हैं :

$ git fetch
$ git diff master...origin/master

ट्रिपल अवधि पर ध्यान दें, जिसका अर्थ है साझा माता-पिता और मूल / स्वामी ( xनीचे चिह्नित किए गए) के खिलाफ अलग-अलग :

SP---o---o [master]
  \
   x---x [origin/master]

बस एक खींचने के बाद

एक पुल के उत्पादन में बहुत पहली पंक्ति इस तरह दिखती है:

$ git pull
Updating 37b431a..b2615b4
...

तुम तो बस कर सकते हैं:

$ git diff 37b431a..b2615b4

या जो भी अन्य आदेश:

$ git log --name-status 37b431a..b2615b4

बाद में

यदि आपको खींचे हुए कुछ समय हो गया है, और आप यह जानना चाहते हैं कि अंतिम खींचतान में क्या बदलाव लाए गए हैं, तो आप इसे देख सकते हैं:

$ git reflog | grep -A1 pull | head -2

पुल से पहले हैश द्वारा पीछा किए जाने के बाद जो हैश दिखाएगा:

b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master

फिर आप इन दो हैश के साथ एक ही काम कर सकते हैं:

git diff 37b431a..b2615b4

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

24

क्योंकि git pullसिर्फ एक शॉर्टकट है git fetchऔर git merge, आप git fetchशाखाओं को मूल से लाने के लिए चला सकते हैं और फिर विलय से पहले अंतर दिखा सकते हैं। ऐशे ही:

git fetch                      # Load changes from remote server
git diff master origin/master  # Show differences
git merge origin/master        # Merge remote changes with local changes

यदि आप मास्टर से भिन्न शाखा पर चलते हैं , तो आपको निश्चित रूप से ऊपर दिए गए आदेशों में शाखा के नाम बदलने चाहिए।


1
`` `git diff --name-only मास्टर मूल / मास्टर [पथ]` ``
jiacheo

10

आप खींची गई सामग्रियों की तुलना तुरंत पिछले प्रतिबद्ध के स्रोतों से कर सकते हैं,

git diff branch_name@{1}

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

git diff master@{1}

सूत्रों के साथ तुलना करने के लिए n पीछे,

git diff branch_name@{n}

3
यह एक अच्छा जवाब है, लेकिन स्पष्टीकरण गलत है: "सूत्रों के साथ तुलना करने के लिए n कम पीछे"@{n}वाक्य रचना वास्तव में इसका मतलब nthपिछले स्थिति शाखा / सिर के। उदाहरण के लिए, अगर वहाँ 10 प्रतिबद्ध किया गया है के बाद से पिछली बार जब आप एक पुल था, master@{1}पहले को उल्लेख करता है स्थिति की master, जो 10 है प्रतिबद्ध पहले। यही कारण है कि @{n}एक पुल के बाद परिवर्तनों की जांच के लिए उपयोग करना उपयोगी है।
बुद्धिमानबीच

यह वह उत्तर है जिसकी मुझे तलाश है! स्पष्टीकरण के लिए धन्यवाद @wisbucky
tamerlaha

5

आप चेक कर सकते हैं कि पुश करते समय इसमें क्या बदलाव आते हैं और इसके द्वारा ...

git log --stat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.