Git බැඳීමක වෙනස්කම් දකින්නේ කෙසේද?


1575

මම කරන විට git diff COMMITමම කොමිට් හිස (මම දන්න තරම්) අතර වෙනස්කම් බලන්න, නමුත් මම ඒ තනි විසින් ඉදිරිපත් කරන ලද වෙනස්කම් සිදු බලන්න කැමතියි.

මට පැහැදිලි විකල්පයක් හමු වී නැත diff/ logඑය මට එම ප්‍රතිදානය ලබා දෙනු ඇත.


Answers:


2018

විශේෂිත COMMITහැෂ් සඳහා වෙනස බැලීමට :

git diff COMMIT~ COMMITඑම COMMITමුතුන්මිත්තන් සහ අතර ඇති වෙනස ඔබට පෙන්වනු ඇත COMMIT. විධානය පිළිබඳ විස්තර සහ අංකනය සහ එහි මිතුරන් පිළිබඳ gitrevisions සඳහා git diff සඳහා man පිටු බලන්න . ~

විකල්පයක් ලෙස, git show COMMITඉතා සමාන දෙයක් කරනු ඇත. ( බැඳීමේ දත්ත, එහි වෙනස ඇතුළුව - නමුත් ඒකාබද්ධ කිරීම සඳහා නොවේ.) Git show manpage බලන්න .


17
බව සටහන ^මෙම තොම්සන් සහ Bourne ෂෙල් වෙඩි (සඳහා පර්යාය පදයක් උපුටා කිරීමට අවශ්යතා |ඇති) සහ rc(බැධී ක්රියාකරු) සහ එහි ව්යුත්පන්න සහ zshextendedglob සමග (සක්රීය notක්රියාකරු globbing)
Stephane Chazelas

3
HEAD^බැඳීමකට බහු දෙමව්පියන් සිටී නම් පළමු දෙමව්පියන් අදහස් කරන බව සලකන්න (එනම් ඒකාබද්ධ කිරීමේ බැඳීම).
මන්සූර්

23
git diff COMMIT~ COMMITමට වැඩ කරයි, කැරට් වෙනුවට ටිල්ඩ් බලන්න. මම වින්ඩෝස් 10 හි 2.6.1.windows.1 git අනුවාදය ධාවනය කරමි.
Juuso Ohtonen

15
radtradetree: COMMIT යන වචනය යම්කිසි බැඳීමක නමකින් ආදේශ කළ යුතුය, උදා: SHA එකතුව.
නික් මැටියෝ

94
මෙම ප්‍රශ්නයට git show වඩාත් සුදුසු යැයි මට හැඟෙන අතර එය මුලින් සඳහන් කළ යෝජනාව විය යුතුය.
pypmannetjies

505

" එහි මවුපියන් සමඟ ඇති ගැටුමේ වෙනස සඳහා කෙටිමං? " හි සඳහන් කර ඇති පරිදි, ඔබට මෙයද භාවිතා කළ හැකිය git diff:

git diff COMMIT^!

හෝ

git diff-tree -p COMMIT

Git show සමඟ, ඔබට (වෙනස මත පමණක් අවධානය යොමු කිරීම සඳහා) කිරීමට අවශ්‍ය වනු ඇත:

git show --color --pretty=format:%b $COMMIT

මෙම COMMITපරාමිතිය වේ සිදු-සාක්ෂි ලැබී :

වස්තුව සිදු හෝ වස්තුව ඇත්තෙන් වෙනසට භාජනය වූ සිදු වස්තුවකට dereferenced කළ හැකි බව. පහත දැක්වෙන්නේ බැඳීම්-වස්තූන් ය: බැඳීම් වස්තුවක්, කැපවූ වස්තුවකට යොමු වන ටැග් වස්තුවක් , කැපවූ වස්තුවකට යොමු වන ටැග් වස්තුවකට යොමු කරන ටැග් වස්තුව යනාදිය.

බැඳීමක් සඳහන් කිරීම සඳහා "විශේෂිත සංශෝධන" බලන්න .
" Git හි ගස-ඊෂ් යන්නෙහි තේරුම කුමක්ද? "


380

ඔබට මෙම පහසු ක්‍රමය උත්සාහ කළ හැකිය:

git show <COMMIT>

2
මෙය මීට වඩා වෙනස් දෙයක් කරන බව පෙනේ
කාලකණ්ණි විචල්ය

3
එය පෙන්වන්නේ බැඳීම් පණිවිඩය පමණි. මෙම බැඳීම සඳහා යොදන කේත වෙනස්වීම්වල වෙනස නොවේ.
k0pernikus

1
මෙය පිළිතුර විය යුතුය.
රෝල්

82

git show නවතම කැපවීමේදී සිදුකරන ලද වෙනස්කම් පෙන්වයි.

සමාන වේ git show HEAD.

git show HEAD~1 ඔබව 1 කැපවීම ආපසු ගෙන යයි.


වඩාත්ම පහසු එකක් !!
ටිමෝ

46

මම සාමාන්‍යයෙන් කරන්නේ:

git diff HEAD~1

අන්තිම බැඳීම සම්බන්ධ වෙනස්කම් පෙන්වීමට. ඔබට තවත් කොමිස් තිබේ නම්, ඔබට දැකීමට අවශ්‍ය කොමිස් ගණන කොපමණ දැයි අංක 1 වැඩි කරන්න.


34

පළමුව බැඳීම් හැඳුනුම්පත භාවිතා කරන්න,

git log #to list all

හෝ

git log -p -1 #last one commit id

කැපවීමේ හැඳුනුම්පත පිටපත් කරන්න.

නිශ්චිත බැඳීමක වෙනස්කම් ලැයිස්තුගත කිරීම සඳහා දැන් අපි ක්‍රම දෙකක් භාවිතා කරමු,

ක්රමය 1:

git diff commit_id^! #commit id something like this 1c6a6000asad012

ක්රමය 2:

git show commit_id
For example: git show 1c6a600a

2
එහි ^!තේරුම කුමක්ද ??
මාටින් කෝල්

2
^! කැපවීම සඳහා වූ කෙටිමං ^ .. කැපවීම යන්නෙන් අදහස් කරන්නේ සියලු දෙමව්පියන් බැහැර කර එම කැපවීමේ වෙනස පරීක්ෂා කිරීමයි
මොහදීන් බින් මොහොමඩ්

මම විශේෂ expert යෙක් නොවෙමි, නමුත් මට (බහු ශාඛා සම්බන්ධ වී ඇති) git log c where! git log c ^ .. c ට සමාන නොවේ. ඇත්ත වශයෙන්ම එය වඩා හොඳය: git log c ^ .. c වැඩිපුර ඇතුළත් කිරීම් ලැයිස්තුගත කර ඇති අතර git log c ^! හරි දේ කළා, ඒ නිසා මම
දීර්

32
git show <commit_sha>

මෙම කැපවීමේ ඇති දේ මෙය ඔබට පෙන්වයි. කැපවීම් ෂා දෙකක් අතර ඉඩක් තැබීමෙන් ඔබට එය පරාසයක් කළ හැකි යැයි මම සිතමි.

git show <beginning_sha> <ending_sha>

ඔබේ විශේෂාංග ල logs ු-සටහන් සියල්ලම පේළියකින් යුක්ත වන නිසා ඔබ බොහෝ විට ප්‍රතිප්‍රහාර එල්ල කරන්නේ නම් එය බෙහෙවින් උපකාරී වේ.


25

Git-diff (1) සඳහා මෑන් පිටුවෙන් :

git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

මැද 3 වන එක භාවිතා කරන්න:

git diff [options] <parent-commit> <commit>

උදාහරණ කොටසේ , පහළින් එකම මිනිසා පිටුවෙන් :

$ git diff HEAD^ HEAD      <3>

අන්තිම බැඳීමට හා අවසාන බැඳීමට පෙර අනුවාදය සංසන්දනය කරන්න.

එය ටිකක් අවුල් සහගත ලෙස වචන වලින් පිළිගෙන ඇති බව පිළිගත යුතුය

නවතම කැපවීම ඊට පෙර ඇති කැපවීම සමඟ සසඳන්න.


3
ඔබගේ නැවත ලිවීම අදාළ වේ git diff HEAD HEAD^.
රිචඩ්

git diff HEAD ^ HEAD කිසිදු වෙනසක් නොපෙන්වයි.
user3690202

36 user3690202 එවිට ඇඟවෙන්නේ ප්‍රදර්ශනය කිරීමට කිසිදු වෙනසක් නොමැති බවයි. ඇත්ත වශයෙන්ම එය එසේද?

ප්‍රදර්ශනය සඳහා කිසිදු වෙනසක් සිදු නොවන්නේ කෙසේද? ඔබට අවසාන කැපවීම බැලීමට අවශ්‍ය නම්, එය සම්පූර්ණයෙන්ම නව ගබඩාවක් නොවේ නම් ප්‍රදර්ශනය කිරීමට යම් යම් වෙනස්කම් සිදුවනු ඇත්ද?
user3690202

36 user3690202 විධාන රේඛා විකල්පයක් සමඟ අභිබවා යා හැකි වුවද, මෙය පරික්ෂා කර වළක්වන ආරක්ෂිත ආරක්ෂාවක් ඇතත්, දෙමව්පියන්ගෙන් කිසිදු වෙනසක් අඩංගු නොවන Git සමඟ “හිස් බැඳීමක්” කළ හැකිය. ඔබ හිතාමතාම හිස් කැපවීමක් නිර්මාණය කරනු ඇතැයි මට සැකයක් ඇත, එබැවින් තවත් හැකියාවක් නම්, කෙසේ හෝ ඔබට කිසියම් වෙනසක් සිදු වී නොමැති බව සිතීමට Git වංචා කරන (හෝ වෙනත් විනෝදජනක සුදු අවකාශයේ දේවල්) පෙර-කැපවීමේ රේඛීය-අවසන් පරිවර්තනයක් තිබීමයි. ඔබ Git ක්‍රියාත්මක කරන්නේ කුමන වේදිකාවද?

22

පහත දැක්වෙන්නේ එම කාර්යය කරන බව ය; ඒකාබද්ධ කිරීමකින් ගෙන ආ දේ පෙන්වීමට මම එය භාවිතා කරමි.

git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>

එයත් වැඩ git logකරයිද? ( stackoverflow.com/a/18585297/6309 නිසා )
VonC


11

git diff HEAD HEAD^1දෙමව්පියන්ගේ කැපවීම සමඟ ඇති වෙනස බැලීමට ඔබට භාවිතා කළ හැකිය.

ඔබට අවශ්‍ය වන්නේ ගොනු ලැයිස්තුව පමණක් නම්, --statවිකල්පය එක් කරන්න .


ඔබ අදහස් කළේ මෙයයි, git diff HEAD ^ 1 HEAD
Shibir Basak

ඉවත් කළ ලෙස ඔබ එකතු කළ දේ මෙය පෙන්වන බව සලකන්න, එය ප්‍රතිලෝම සංසන්දනයක් කරනු ඇත. ඔබ කියවා යුතු මාර්ගය diffවන විධානය: මම සිදු සිට ලබා ගැනීමට ගොනුව තුල වෙනස් කිරීමට අවශ්ය වන දේ HEADසිදු කිරීමට HEAD^1?
brainplot

9
git difftool COMMIT^ <commit hash>

ඔබ ඔබේ ඩිෆ්ටූල් වින්‍යාස කර ඇත්නම් ද එය කළ හැකිය.

කෙසේ මෙතන බලන්න difftool මාන නැත්නම් ශ්රමික පිටුව මෙතන

git diff-tree --no-commit-id --name-only -r <commit hash>දීමනාවක් ලබා දීමේ හැෂ් එකක කුමන ගොනු වෙනස් කර ඇත්දැයි බැලීමට ඔබට භාවිතා කළ හැකිය


9

නිශ්චිත බැඳීමක් හා එහි අවසාන කැපවීම සංසන්දනය කිරීමට මම පහත විධානයට කැමතියි:

git diff <commit-hash>^-

උදාහරණයක්:

git diff cd1b3f485^-

7

කැපවීමෙන් කර්තෘ සහ වේලාව බැලීමට git show COMMIT. එහි ප්‍රති result ලය මේ වගේ දෙයක් වනු ඇත:

commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <you@you.com>
Date:   Fri Jul 24 17:46:42 2015 -0700

     Merge remote-tracking branch 'origin/your-feature'

කුමන ගොනු වෙනස් කර ඇත්දැයි බැලීමට ඔබට අවශ්‍ය නම්, ඉහත ඒකාබද්ධ කිරීමේ රේඛාවේ අගයන් සමඟ පහත සඳහන් දෑ ක්‍රියාත්මක කරන්න git diff --stat a2a2894 3a1ba8f.

ඔබට සැබෑ වෙනස දැකීමට අවශ්‍ය නම් ධාවනය කරන්න git --stat a2a2894 3a1ba8f


"ඔබට සැබෑ වෙනස දැකීමට අවශ්‍ය නම් ධාවනය කරන්න git --stat a2a2894 3a1ba8f". මම හිතන්නේ ඔබ අදහස් කළේ git diff a2a2894 3a1ba8fහෝ නැතිනම් unknown option: --stat.
පළතුරු

5

සම්පූර්ණ වෙනස්කම් පරීක්ෂා කිරීම සඳහා:

  git diff <commit_Id_1> <commit_Id_2>

වෙනස් කළ / එකතු කළ / මකා දැමූ ගොනු පමණක් පරීක්ෂා කිරීම සඳහා:

  git diff <commit_Id_1> <commit_Id_2> --name-only

සටහන : අතර වෙනසකින් තොරව වෙනස පරීක්ෂා කිරීම සඳහා, ඔබ කැපවීමේ හැඳුනුම්පත් දැමිය යුතු නැත.


4

මම වින්ඩෝස් 10 හි Git අනුවාදය 2.6.1.windows.1 ධාවනය කරමි, එබැවින් මට නෙවික්ගේ පිළිතුරට සුළු වෙනස් කිරීමක් අවශ්‍ය විය (කැරට් වෙනුවට ටිල්ඩ්):

git diff COMMIT~ COMMIT

තවත් විකල්පයක් වන්නේ කරත්තය උපුටා දැක්වීම:

git diff "COMMIT^" COMMIT

3

මෙම විධානය මඟින් ඔබට Git මාපිය බැඳීම්-හැෂ් ලැබෙනු ඇත:

git log -n 2 <commit-hash>

එයට පසු git diff-tool <commit-hash> <parent-commit-hash>

උදාහරණයක්:

bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3

commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <souparno.majumder@gmail.com>
Date:   Mon Jul 25 13:17:07 2016 +0530

CSS changed to maintain the aspect ratio of the channel logos and to fit them properly.

commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Author: souparno <souparno.majumder@gmail.com>
Date:   Mon Jul 25 11:28:09 2016 +0530

The ratio of the height to width of the channel images are maintained.

මෙයින් පසු

git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f

3

ඔබට නවතම කැපවීමේ වෙනස්කම් දැකීමට අවශ්‍ය නම්, එය ඔබට git showලබා දෙනු ඇත.


1

චිත්රක දර්ශනයක මූලාශ්රය වෙනස් කිරීම පරීක්ෂා කිරීමේදී,

$gitk (Mention your commit id here)

උදාහරණයක් වශයෙන්:

$gitk HEAD~1 

මෙම පිළිතුර පහත් කොට සැලකුවේ මන්දැයි මට තේරෙන්නේ නැත. විධාන රේඛාව සහ පෙළ පදනම් කරගත් දේවල් යා යුතු මාර්ගය බව මම එකඟ වෙමි, නමුත් gitk බොහෝ ප්‍රයෝජනවත් තොරතුරු ලබා දෙයි.
ෂෙල්ෆිෂ්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.