जवाबों:
git diff --name-only SHA1 SHA2
जहां आपको कमिट की पहचान करने के लिए केवल SHA को शामिल करने की आवश्यकता है। आप भी कर सकते हैं, उदाहरण के लिए
git diff --name-only HEAD~10 HEAD~5
दसवीं नवीनतम प्रतिबद्ध और पांचवें नवीनतम (या तो) के बीच अंतर देखने के लिए।
git show --name-only SHA1
।
git diff --name-status [TAG|SHA1]
दिखाता है कि फाइलों के लिए भी क्या संचालन किया गया था
git diff --name-status
जोड़ा फ़ाइलों को दिखाना नहीं चाहते हैं। @sschuberth ने बताया git show
, जो मेरे लिए ठीक से काम करता है git show --pretty=format: --name-status
:। बस करने git show --name-status
से थोड़ी अधिक जानकारी मिलती है, लेकिन फिर भी अच्छा और घना ... यह मेरा नया गोटो कमांड होगा;)
git diff --name-status [SHA1 [SHA2]]
यह है कि --name-only, सिवाय इसके कि आपको एक सरल उपसर्ग मिले जो आपको बताए कि फाइल का क्या हुआ (संशोधित, हटाए गए, जोड़े गए ...)
git log --name-status --oneline [SHA1..SHA2]
समान है, लेकिन यह प्रतिबद्ध संदेश के बाद सूचीबद्ध होता है, इसलिए आप देख सकते हैं कि फाइल कब बदली गई।
अगर आप सिर्फ क्या कुछ फ़ाइलों को क्या हुआ में रुचि रखते हैं / फ़ोल्डर आप जोड़ सकते हैं -- <filename> [<filename>...]
करने के लिए git log
संस्करण।
यदि आप यह देखना चाहते हैं कि एक प्रतिबद्ध के लिए क्या हुआ, तो इसे SHA1 कहें, फिर करें
git log --name-status --oneline [SHA1^..SHA1]
फ़ाइल स्थिति झंडे:
M संशोधित - फ़ाइल को
C-edit संशोधित किया गया है - फ़ाइल की प्रतिलिपि बनाई गई है और
R नाम बदलें- संशोधित किया गया है - फ़ाइल का नाम बदला गया है और संशोधित
A जोड़ा गया है - फ़ाइल को जोड़ा गया है
D हटा दिया गया है - फ़ाइल को हटा दिया गया है
U unmerged - मर्ज के बाद फ़ाइल में विरोध होता है
--relative[=<path>]
विकल्प आपको मदद मिल सकती है, मुझे यकीन है कि नहीं हूँ। नहीं तो हमेशा होता है | erep -v '(.tmp|.foo|.dontwant)$'
...
ऐसा लगता है कि किसी ने भी स्विच का उल्लेख नहीं किया है --stat
:
$ git diff --stat HEAD~5 HEAD
.../java/org/apache/calcite/rex/RexSimplify.java | 50 +++++++++++++++++-----
.../apache/calcite/sql/fun/SqlTrimFunction.java | 2 +-
.../apache/calcite/sql2rel/SqlToRelConverter.java | 16 +++++++
.../org/apache/calcite/util/SaffronProperties.java | 19 ++++----
.../org/apache/calcite/test/RexProgramTest.java | 24 +++++++++++
.../apache/calcite/test/SqlToRelConverterTest.java | 8 ++++
.../apache/calcite/test/SqlToRelConverterTest.xml | 15 +++++++
pom.xml | 2 +-
.../apache/calcite/adapter/spark/SparkRules.java | 7 +--
9 files changed, 117 insertions(+), 26 deletions(-)
वे भी हैं --numstat
$ git diff --numstat HEAD~5 HEAD
40 10 core/src/main/java/org/apache/calcite/rex/RexSimplify.java
1 1 core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java
16 0 core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
8 11 core/src/main/java/org/apache/calcite/util/SaffronProperties.java
24 0 core/src/test/java/org/apache/calcite/test/RexProgramTest.java
8 0 core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
15 0 core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
1 1 pom.xml
4 3 spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java
तथा --shortstat
$ git diff --shortstat HEAD~5 HEAD
9 files changed, 117 insertions(+), 26 deletions(-)
लेकिन आपकी शाखा और उसके सामान्य पूर्वज के बीच एक और शाखा के साथ परिवर्तित फ़ाइलों को देखने के लिए (मूल / स्वामी कहें)
git diff --name-only `git merge-base origin/master HEAD`
git diffstatus master
या समान हो, जो ऊपर से ट्रिगर करता है।
git show --pretty=format: --name-only origin/master..
।
git diff --name-only HEAD...master
(तीन बिंदुओं पर ध्यान दें)। विस्तृत विवरण के लिए, यहां देखें ।
git diff --name-only master..branch
जीथब पीआर सूची के अनुरूप नहीं है। इस तरह अधिक सटीक। लेकिन वैसे भी मेरे पास १ anyway३ चिटेड फाइलें हैं १1१ में जीथब पीआर। (बिना merge-base
मेरे पास 228 बनाम 171 है)
यदि आप दो शाखाओं के बीच परिवर्तित फ़ाइलों को दिखाना चाहते हैं, तो @ artfulrobot के उत्तर को पूरक करने के लिए:
git diff --name-status mybranch..myotherbranch
पूर्वता पर सावधान रहें। यदि आप नई शाखा को पहले रखते हैं तो यह जोड़ा के बजाय हटाई गई फ़ाइलों को दिखाएगा।
grep
चीजों को जोड़ने से चीजों को और अधिक परिष्कृत किया जा सकता है:
git diff --name-status mybranch..myotherbranch | grep "A\t"
उसके बाद केवल जोड़ी गई फ़ाइलें दिखाई देंगी myotherbranch
।
--diff-filter
जो इस कार्यक्षमता को मूल रूप से देता है, जिसका अर्थ है कि गलत परिणाम की संभावना कम है (उदाहरण के लिए गलत सकारात्मक)
अपने नीचे उपनाम जोड़ें ~/.bash_profile
, फिर चलाएं source ~/.bash_profile
; अब कभी भी आपको showfiles
अपने कमिट रिपॉजिटरी से अपडेट की गई फाइलों को अंतिम प्रतिबद्ध में देखना होगा ।
alias showfiles='git show --pretty="format:" --name-only'
git config --global alias.showfiles 'show --pretty="format:" --name-only'
बनाने के लिए git showfiles
।
यह फाइलों में बदलाव दिखाएगा:
git diff --word-diff SHA1 SHA2
Git log --pretty = oneline> C: \ filename.log का उपयोग करें
जो केवल एक ऑनलाइन (--pretty = oneline) लॉग इन करेगा जो बदले हुए फ़ाइल का नाम है। साथ ही आपके आउटपुट फ़ाइल में सभी विवरणों को लॉग करेगा।
git log --pretty=oneline
मुझे केवल SHA और कमिट मैसेज देता है git 2.10.1 का उपयोग करके
जैसा Artfulrobot ने अपने उत्तर में कहा:
git diff --name-status [SHA1 [SHA2]]
मेरा उदाहरण:
git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997
4b95d595812211553070046bf2ebd807c0862cca
M views/layouts/default.ctp
M webroot/css/theme.css
A webroot/img/theme/logo.png
बस किसी के लिए जो केवल जावा फाइलों पर ध्यान केंद्रित करने की जरूरत है, यह मेरा समाधान है:
git diff --name-status SHA1 SHA2 | grep '\.java$'
निम्नलिखित मेरे लिए अच्छी तरह से काम करता है:
$ git show --name-only --format=tformat: SHA1..SHA2
यह भी एक प्रतिबद्ध के साथ इस्तेमाल किया जा सकता है:
git show --name-only --format=tformat: SHA1
जो जेनकींस में उपयोग के लिए आसान है, जहां आपको परिवर्तन की सूची SHA की सूची प्रदान की जाती है, और उन फाइलों को बदलने के लिए उन पर पुनरावृति करना चाहते हैं।
यह ऊपर दिए गए उत्तरों के एक जोड़े के समान है, लेकिन इसके tformat:
बजाय format:
कमिट के बीच विभाजक स्थान को हटा देता है।
के आधार पर git diff --name-status
मैंने गिट-डिफ्यूज़ गिट एक्सटेंशन लिखा है जो दो रास्तों के बीच बदले गए एक पदानुक्रमित पेड़ दृश्य को प्रस्तुत करता है।