Answers:
නවතම තොගය බලන්න:
git stash show -p
අත්තනෝමතික තොගයක් බලන්න:
git stash show -p stash@{1}
සිට git stash
manpages:
පෙරනිමියෙන්, විධානය මඟින් ඩිෆ්ස්ටැට් පෙන්වයි, නමුත් එය git diff දන්නා ඕනෑම ආකෘතියක් පිළිගනු ඇත (උදා: git stash show -p stash @ {1 pat පැච් ස්වරූපයෙන් දෙවන නවතම තොගය බැලීමට).
stash@{0}
පෙරනිමිය; ඔබට අවශ්ය වන්නේ පෙර කොටස් දෙස බැලීමට අවශ්ය නම් පමණි.
{0}
.
-p
සඳහා එල්ලවී?
නවීනතම තොගය බැලීමට:
git stash show -p
අත්තනෝමතික තොගයක් බැලීමට:
git stash show -p stash@{1}
එසේම, ඕනෑම ශාඛාවක් සමඟ තොගය සංසන්දනය කිරීම සඳහා මම git diff භාවිතා කරමි.
ඔයාට පාවිච්චි කරන්න පුළුවන්:
git diff stash@{0} master
ශාඛා මාස්ටර් හා සසඳන විට සියලු වෙනස්කම් දැකීමට.
හෝ ඔබට භාවිතා කළ හැකිය:
git diff --name-only stash@{0} master
වෙනස් කළ ගොනු නම් පමණක් පහසුවෙන් සොයා ගැනීමට.
git diff stash@{0} master
, එසේ නම් , වත්මන් ස්වාමියාට එරෙහිව ඔබේ තොගයේ වෙනසක් ඔබට ලැබෙනු ඇත. සාදන ලදි), තොගය වෙනස් වන ලිපිගොනු / රේඛා නොව, ප්රශ්නය වන්නේ එයයි.
git difftool --tool=... stash@{0} HEAD
git diff stash@{0}^ stash@{0}
git diff stash@{0} master -- filename
විශේෂිත ගොනුවකට වෙනස්කම් ලබා ගැනීම සඳහා ඔබට ගොනු නාමය එක් කළ හැකිය .
ඔබගේ ගබඩා කර ඇති වෙනස්කම් පදනම් කරගත් ශාඛාව මේ අතර වෙනස් වී ඇත්නම්, මෙම විධානය ප්රයෝජනවත් විය හැකිය:
git diff stash@{0}^!
මෙය පදනම් වී ඇති කැපවීමට එරෙහි තොගය සංසන්දනය කරයි.
~/.gitconfig
:laststash = diff stash@{0}^!
git difftool stash^!
කැපවීමට එරෙහි අන්තිම තොගයේ වෙනස සඳහා එය පදනම් වූයේ, git difftool stash HEAD
වර්තමාන බැඳීමට එරෙහිව අවසන් වරට ඇති වෙනස සඳහා (කලින් stash සඳහා stash {{n stash)
ඔබේ වැඩ කරන ගස අපිරිසිදු නම් , පළමුවෙන්ම අපිරිසිදු වැඩ කරන ගස කැපීමෙන් ඔබට එය තොගයකට සංසන්දනය කළ හැකිය, පසුව එය තොගයට සංසන්දනය කරන්න. පසුව, අපිරිසිදු වැඩ කරන ගස සමඟ ඇති බැඳීම ඔබට අහෝසි කළ හැකිය (ඔබේ කැපවීමේ ලොගය තුළ එම අපිරිසිදු බැඳීම ඔබට අවශ්ය නොවනු ඇත).
ඔබට කොටස් දෙකක් එකිනෙක හා සැසඳීම සඳහා පහත දැක්වෙන ප්රවේශය භාවිතා කළ හැකිය (එවැනි අවස්ථාවකදී ඔබ මුලින් එක් තොගයක් පමණක් පොප් කරයි).
ඔබේ අපිරිසිදු වැඩ කරන ගස කැප කරන්න:
git add .
git commit -m "Dirty commit"
එම කැපවීම සමඟ තොගය වෙනස් කරන්න:
git diff HEAD stash@{0}
ඉන්පසුව, පසුව, ඔබට බැඳීම ආපසු හැරවිය හැකි අතර, එය නැවත වැඩ කරන dir හි තබන්න:
git reset --soft HEAD~1
git reset .
දැන් ඔබ අපිරිසිදු වැඩ කරන ගස ඔබේ තොගයෙන් වෙනස් කර ඇති අතර ඔබ මුලින් සිටි ස්ථානයට නැවත පැමිණේ.
git stash show -l
. වැඩ කරන (අපිරිසිදු) පිටපතට එරෙහි නවතම තොගය එය වෙනස් වේද? ලබා නොගෙන ඔබ එය භාවිතා කරන්නේ කෙසේද error: switch l requires a value
?
git stash show -l
. එය ඔබ වෙනුවෙන් ක්රියා නොකරන්නේ මන්දැයි, මට අනුමාන කළ හැක්කේ ඔබ පැරණි git අනුවාදයක සිටිනු ඇතිද? මම git v2.20.1 හි සිටිමි, එය දෝෂ නොමැතිව දෝෂ රහිතව ක්රියා කරයි.
@ මැග්නේගේ පිළිතුර ප්රශ්නයේ වඩාත්ම නම්යශීලී / ප්රයෝජනවත් අර්ථ නිරූපණයට පිළිතුරු සපයන එකම දිනය (ඉතා ප්රමාද) වන නමුත් එය අවශ්ය ප්රමාණයට වඩා තරමක් සංකීර්ණ වේ. කැපවීම සහ නැවත සැකසීම වෙනුවට, ඔබේ වැඩ කරන පිටපත ගබඩා කර, සංසන්දනය කර, පසුව අස්ථාවර කරන්න.
git stash save "temp"
git diff stash@{0} stash@{1}
git stash pop
තාවකාලිකව ඔබේ වැඩ කරන ෆෝල්ඩරයේ වෙනස්කම් ස්ටෑෂ් ස්ටක් එකේ ඉහළට (ස්ටෑෂ් @ {0}) බවට පත් කිරීමෙන්, ස්ටෑෂ් ස්ටැක් එකේ ඉහළ සහ වැඩ කරන ෆෝල්ඩරය අතර ඇති වෙනස එයින් පෙන්වයි. ) ඉන්පසු 'නව කට්ටලය' ස්ථානයේ මුල් මුදුන භාවිතා කිරීම සංසන්දනය කිරීමෙන් ඔබගේ වර්තමාන කාර්යයට ඉහළින් එය යෙදීමෙන් ඇතිවන වෙනස්කම් ඔබට පෙනෙනු ඇත.
"නමුත් මට වර්තමාන වැඩක් නොමැති නම් කුමක් කළ යුතුද?" එවිට ඔබ සාමාන්ය කම්මැලි නඩුවේ ය. @ ඇම්බර්ගේ පිළිතුර භාවිතා කරන්න
git stash show
හෝ z czerasz ගේ පිළිතුර
git diff stash@{0}
කෙසේ වෙතත්, ගබඩා කිරීම සහ අස්ථාවර කිරීම වේගවත් හා පහසු බව පිළිගන්න, වෙනස්කම් ඉවත් කර පරීක්ෂා කරන්න. ඔබට මේ මොහොතේ ඒවා අවශ්ය නොවන්නේ නම් (වත්මන් දර්ශකය / වැඩ කරන ෆෝල්ඩරය වෙනස් වේ) ඉවතට විසි කරන්න. සම්පුර්ණයෙන්ම එය
git stash apply
git diff
git reset
git checkout
git stash save -u
Git අනුවාදය 1.8.5.2 හි මෙය මට වැඩ කරයි:
git diff stash HEAD
git stash apply
.
වැඩ කරන ගසෙහි සහ තොගයේ ඇති ගොනුවක් සංසන්දනය කිරීමට පහත විධානය භාවිතා කරන්න
git diff stash@{0} -- fileName (with path)
ඔබට වෙනස සඳහා මෙවලම් තිබේ නම් (සැසඳිය නොහැකි තරම්)
git difftool stash HEAD
git stash apply
.
HEAD
. හෙඩ් ඉවත් කිරීම සඳහා මට @ යෙර්ලිල්බිල්ජින්ගේ පිළිතුර වෙනස් කළ හැකි නමුත් මම සිතන්නේ git භාවිතා කරන ඕනෑම කෙනෙකුට එම කොටස හදුනාගත හැකි අතර මම පිළිතුර දීර් ngthen කිරීමෙන් එය කියවිය නොහැකි වනු ඇත. @Yerlibilgin ට වරදක් නැත.
ඔබට (දේශීය වැඩ කරන ගස / දෙමාපිය කැපවීම / හිස කැපවීම) සමඟ සංසන්දනය කිරීමට අවශ්ය දේ මත පදනම්ව, ඇත්ත වශයෙන්ම විධාන කිහිපයක් තිබේ, ඒවා අතර හොඳ පැරණි git diff
සහ වඩාත් නිශ්චිත git stash show
:
╔══════════════════════╦═══════════════════════════════╦═══════════════════╗
║ Compare stash with ↓ ║ git diff ║ git stash show ║
╠══════════════════════╬═══════════════════════════════╬═══════════════════╣
║ Local working tree ║ git diff stash@{0} ║ git stash show -l ║
║----------------------║-------------------------------║-------------------║
║ Parent commit ║ git diff stash@{0}^ stash@{0} ║ git stash show -p ║
║----------------------║-------------------------------║-------------------║
║ HEAD commit ║ git diff stash@{0} HEAD ║ / ║
╚══════════════════════╩═══════════════════════════════╩═══════════════════╝
අතර git stash show
පෙනුම වැඩි පරිශීලක හිතකාමී දුටු පළමු මත, git diff
ඇත්තටම වඩා බලවත් එය වැඩි අවධානයක් යොමු වෙනස සඳහා ගොනු නාමය නියම ඉඩ ඇත. මගේ zsh git ප්ලගිනය තුළ මෙම සියලු විධාන සඳහා මම පුද්ගලිකව අන්වර්ථයන් සකසා ඇත .
කිසිවක් චලනය නොකර මෙය කළ හැකි එක් ක්රමයක් නම්, patch
git diff හි කියවිය හැකි කාරණයේ වාසිය ලබා ගැනීමයි (මූලික වශයෙන් එක්සත් වෙනස)
git stash show -p | patch -p1 --verbose --dry-run
පැච් සාමාන්යයෙන් කරන්නේ කුමක්ද යන්න පිළිබඳ පියවරෙන් පියවර පෙරදසුනක් මෙය ඔබට පෙන්වයි. මෙහි ඇති අමතර වාසිය නම්, පැච් එක වැඩ කරන ගසට පැච් ලිවීම වලක්වනු නොලැබීමයි, කිසියම් හේතුවක් නිසා වෙනස් කිරීමට පෙර කැපවීම ගැන කට වසා ගැනීමට ඔබට ඇත්ත වශයෙන්ම අවශ්ය නම්, ඉදිරියට ගොස් ඉවත් කරන්න --dry- ධාවනය කර වාචික උපදෙස් අනුගමනය කරන්න.
මෙම ත්රෙඩ් එකේ සහ මේ එකෙන් මම ඉගෙන ගත් දේ ඒකාබද්ධ කිරීම , මට “තොගයේ ඇති දේ” දැකීමට අවශ්ය වූ විට, මම මුලින්ම දුවන්නේ:
git stash show stash@{0}
එමඟින් වෙනස් කරන ලද ගොනු මොනවාදැයි පෙන්වනු ඇත. ඉන්පසුව, ඩිෆ්ටූල් එකක ලස්සන දෘශ්ය වෙනසක් ලබා ගැනීම සඳහා මම කරන්නේ:
git difftool --dir-diff stash@{0} stash@{0}^
මෙමඟින් සිය මවුපියන්ට එරෙහිව ලබා දී ඇති තොගයේ එකවරම සියලු වෙනස්කම් පෙන්වනු ඇත.
ඔබට වෙනස මෙවලම වින්යාසගත කළ හැකිය ~/.gitconfig
, උදා: මෙල්ඩ් සමඟ :
...
[diff]
tool = meld
FWIW මෙය අනෙක් සියලුම පිළිතුරු වලට තරමක් අතිරික්තයක් විය හැකි අතර එය පිළිගත් පිළිතුරට බෙහෙවින් සමාන ය; නමුත් සමහර විට එය යමෙකුට උදව් වනු ඇත.
git stash show --help
ඔබට අවශ්ය සියල්ල ඔබට ලබා දෙනු ඇත; stash show තොරතුරු ඇතුළුව.
[<stash>] පෙන්වන්න
ගබඩා කර ඇති තත්වය සහ එහි මුල් මවුපියන් අතර වෙනසක් ලෙස තොගයේ සටහන් කර ඇති වෙනස්කම් පෙන්වන්න. කිසිවක් ලබා නොදුන් විට, නවතම එක පෙන්වයි. පෙරනිමියෙන්, විධානය මඟින් ඩිෆ්ස්ටැට් පෙන්වයි, නමුත් එය git diff දන්නා ඕනෑම ආකෘතියක් පිළිගනු ඇත (උදා: git stash show -p stash @ {1 pat පැච් ස්වරූපයෙන් දෙවන නවතම තොගය බැලීමට). පෙරනිමි හැසිරීම වෙනස් කිරීමට ඔබට stash.showStat සහ / හෝ stash.showPatch වින්යාස විචල්යයන් භාවිතා කළ හැකිය.
ඇය තොග ලැයිස්තුව
git stash list
stash@{0}: WIP on feature/blabla: 830335224fa Name Commit
stash@{1}: WIP on feature/blabla2: 830335224fa Name Commit 2
එබැවින් ස්ටෑෂ් අංකය ලබාගෙන කරන්න:
ඔබට කළ හැකිය:
git stash show -p stash@{1}
නමුත් ඔබට වෙනසක් අවශ්ය නම් (මෙය තොගය පෙන්වීමට වෙනස් වේ, ඒ නිසා මම මෙම පිළිතුර ලියමි. Diff
ඔබේ ශාඛාවේ වත්මන් කේතය සලකා බලා show
ඔබ අයදුම් කරන දේ පෙන්වන්න )
ඔයාට පාවිච්චි කරන්න පුළුවන්:
git diff stash@{0}
හෝ
git diff stash@{0} <branch name>
කළ යුතු තවත් සිත්ගන්නා කරුණක් නම්:
git stash apply
git stash apply stash@{10}
මෙය ලැයිස්තුවෙන් ඉවත් නොකර ගබඩාව අදාළ කරයි, ඔබට git checkout .
එම වෙනස් කිරීම් ඉවත් කළ හැකිය හෝ ඔබ සතුටු නම්git stash drop stash@{10}
ලැයිස්තුවෙන් තොගයක් ඉවත් කිරීමට .
මෙහි සිට භාවිතා කිරීමට මම නිර්දේශ කවදාවත් git stash pop
සංකලනයක් හා භාවිතා git stash apply
සහ git stash drop
ඔබ වැරදි ශාඛා තුළ මත්කුඩු ග්රෑම් අයදුම් කරන්නේ නම් ... හොඳින් සමහර විට ඔබේ කේතය සොයා ගැනීමට අපහසු වේ.
git diff <current-branchname>..stash@{0}
දේශීය වැඩ කරන ගස හා නවතම තොගය අතර ඇති වෙනස්කම් සැසඳීමේ වඩාත්ම බුද්ධිමත් ක්රමය මම විශ්වාස කරමි . ප්රතිස්ථාපනය කරන්නstash@{0}
අවශ්ය පරිදි අදාළ තොග අංකය සමඟ .
පරෙස්සම් වන්න git diff stash@{0}
නොමඟ යවන . ඔබගේ තොගයේ සහ වර්තමාන ශාඛාවේ ඉතිහාසය දෙක වෙනස් වී ඇත්නම්, වෙනස පෙනෙන්නේ ඔබ ඔබේ ගබඩාවේ ඇති සියලුම නව දෑ එකතු කර වත්මන් ශාඛාවට ආවේණික වූ සියල්ල ඉවත් කරන ආකාරයට ය.
git පොත මත පදනම්ව පිළිතුර
එසේම, ද්විත්ව තිත ..
සහ ත්රිත්ව තිත ...
එකිනෙකට වෙනස් කැපවීම් සැසඳීම් සඳහන් කරන බව සලකන්න , මම මෙම පිළිතුර සඳහා ද්විත්ව තිත වෙත යොමු කරමි. විස්තර සඳහා git පොත බලන්න