2010-07-30 18 views
5

के बीच एक ही फ़ाइल में गिट diff का उपयोग करना मेरे पास एक टेक्स्ट फ़ाइल (.yml) है कि मैं अपने सिस्टम उपयोग में कुछ ग्रंथों को दर्ज करता हूं। लेकिन अब हमें यह जानने की जरूरत है कि एक बार में कौन सी नई लाइनें हैं। मैंने हमारी समस्या को हल करने के लिए गिट का उपयोग करने का विचार किया, लेकिन मुझे ऐसा करने के लिए एक स्पष्ट आदेश नहीं मिला।पहली और अंतिम प्रतिबद्धता

क्या यह संभव है?

+0

के संभावित डुप्लिकेट [Git:: एक ही शाखा पर दो अलग-अलग करता के बीच एक ही फाइल diff के लिए कैसे] (http://stackoverflow.com/questions/3338126/git आप को ऊपर लाइन बदल सकते हैं -उत्-टू-डिफ-द-ए-फाइल-बीच-दो अलग-अलग-ऑन-द-द-शाखा) –

उत्तर

11

तुम इतनी तरह कुछ withs प्रतिबद्ध की एक सूची प्राप्त कर सकते हैं:

git log --abbrev-commit --pretty=oneline

कौन सा चाहिए कुछ इस तरह:

commitD Description 
commitC Description 
commitB Description 
commitA Description 

अपने दो प्रतिबद्ध चुनें और उन्हें नीचे स्थानापन्न:

git diff <commitA>..<commitB> -- /path/to/file

+0

मेरी समस्या हल हो गई, thnx! –

3

आप एक कमांडलाइन साथ यह कर सकते हैं:

git diff -w `git rev-list HEAD --reverse | head -1`..HEAD -- <path/file> 

यह 1 की गणना के साथ --reverse उपयोग करने के लिए काम नहीं करता है (-1/--max गिनती 1) ... के रूप में यह है, जिसके परिणामस्वरूप सूची पराजयों इसे छीनने के बाद। तो या तो आप हेड कमांड के साथ एक साथ उलटा उपयोग करते हैं या आप पूंछ -1 का उपयोग करते हैं।

मुझे लाइन-एंडिंग और टैब बनाम रिक्त स्थान के स्विच के कारण मेरे उपयोग के लिए -w जोड़ना पड़ा।

यह पहली उम्मीद में फ़ाइल नहीं जोड़ा गया था, तो यह उम्मीद के अनुसार काम नहीं कर सकता है!

git diff -w `git rev-list HEAD --reverse -- <path/file> | head -1`..HEAD -- <path/file> 
संबंधित मुद्दे