Answers:
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
එකතු කළ ගොනු පෙන්වීමට අවශ්ය නොවන බව පෙනේ. chschuberth පෙන්වා දුන් පරිදි 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]
ගොනුව තත්ත්වය කොඩි:
එම් විකරණය - ගොනු විකරණය කොට තිබේ නම්,
සී පිටපතක්-සංස්කරණ-- ගොනු පිටපත් කර විකරණය කොට තිබේ නම්,
ආර් ප්රතිනම්කෙරුම්-සංස්කරණ-- ගොනු නැවත නම් සහ විකරණය කොට තිබේ නම්,
ඒ එක් - ගොනු එකතු කර ඇත,
ඩී මකා දමන ලදී - ගොනු මකා දමා ඇත
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 master..branch
github PR ලැයිස්තුවට අනුරූප නොවේ. මේ ආකාරයෙන් වඩාත් නිවැරදි ය. නමුත් කෙසේ හෝ මා සතුව ගිතුබ් පීආර් හි චැනල් ගොනු 173 එදිරිව 171 ඇත. ( merge-base
මා නොමැතිව 228 එදිරිව 171)
ශාඛා දෙකක් අතර වෙනස් කළ ලිපිගොනු පෙන්වීමට ඔබට අවශ්ය නම් @ artfulrobot ගේ පිළිතුරට අතිරේකව:
git diff --name-status mybranch..myotherbranch
පූර්වාදර්ශය ගැන සැලකිලිමත් වන්න. ඔබ පළමුව නව ශාඛාව තැබුවහොත් එය එකතු කිරීමට වඩා මකාදැමූ බව පෙන්වයි.
ඒ එකතු grep
කිරීමෙන් තව දුරටත් දේවල් පිරිපහදු කළ හැකිය:
git diff --name-status mybranch..myotherbranch | grep "A\t"
එවිට පෙන්වනුයේ ඇතුළත් කළ ගොනු පමණි myotherbranch
.
--diff-filter
මෙම ක්රියාකාරිත්වය ස්වදේශීයව ලබා දෙන අතර, එයින් අදහස් කරන්නේ වැරදි ප්රති results ල ලැබීමට ඇති ඉඩකඩ අඩු බවයි (උදා: ව්යාජ ධනාත්මක)
ඔබේ අන්වර්ථයට පහළින් එකතු කරන්න ~/.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
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 show --name-only --format=tformat: SHA1..SHA2
එය තනි කැපවීමකින් ද භාවිතා කළ හැකිය:
git show --name-only --format=tformat: SHA1
ඔබට ජෙන්කින්ස් හි භාවිතයට පහසු වන අතර එහිදී ඔබට වෙනස් කිරීම් ලැයිස්තුවක් ලබා දී ඇති අතර, කුමන ගොනු වෙනස් කර ඇත්දැයි බැලීමට ඒවා නැවත කියවීමට අවශ්යය.
මෙය ඉහත පිළිතුරු කිහිපයකට සමාන ය, නමුත් භාවිතා tformat:
කිරීම format:
කොමිස් අතර බෙදුම්කරුගේ ඉඩ ඉවත් කරයි.
git diff --name-status
මා පදනම් කර ගෙන මාර්ග දෙකක් අතර වෙනස් වූ දේ පිළිබඳ ධූරාවලි වෘක්ෂ දර්ශනයක් පෙන්වන git-diffview git දිගුව ලිවීය .