Git stash pop සහ git stash අතර වෙනස අදාළ වේ


1049

මම git stash popසෑහෙන කාලයක් තිස්සේ පාවිච්චි කරනවා. මම මෑතකදී git stash applyවිධානය ගැන දැනගත්තා . මම එය අත්හදා බැලූ විට, එය එලෙසම ක්‍රියාත්මක වන බවක් පෙනෙන්නට තිබුණි git stash pop.

git stash popසහ අතර ඇති වෙනස git stash applyකුමක්ද?

Answers:


1677

git stash pop එය යෙදීමෙන් පසු (ඉහළම, පෙරනිමියෙන්) තොගය ඉවතට විසි කරන අතර, පසුව නැවත භාවිතා කිරීම සඳහා git stash apply එය තොග ලැයිස්තුවේ තබයි (නැතහොත් ඔබට git stash dropඑය කළ හැකිය ).

මෙය සිදුවන්නේ පසු ගැටුම් ඇති නොවන්නේ නම් git stash pop, එම අවස්ථාවේ දී එය තොගය ඉවත් නොකර, හරියටම හැසිරීමට ඉඩ හරියි git stash apply.

එය බැලීමට තවත් ක්‍රමයක්: git stash popවේ git stash apply && git stash drop.


122
@ බ්‍රියන්කිප්ගේ පිළිතුරෙහි පහත දැක්වෙන පරිදි, තොගයක් පැනවූ විට ගැටුම් ඇත්නම්, පොප් විසින් එම තොගය ඉවත් නොකරනු ඇත (සහ හරියටම අදාළ වන ආකාරයට හැසිරෙනු ඇත)
කෂිෆ්

ඔබේ ශාඛාවේ අස්ථායී වෙනස්කම් ප්‍රති result ලයට සමාන වුවත් git stash pop, ඔබට තවමත් ගැටුම් දෝෂයක් ලැබෙනු ඇති බව පෙනේ.
ඩිම්ප්

83

ජෝන් ස්වින්ක් ප්‍රකාශ කර ඇති පරිදි වෙනස සඳහන් කරන මෙම ප්‍රයෝජනවත් සබැඳිය සහ එහි අඩුපාඩුවක් තිබේ git stash pop.

නිදසුනක් ලෙස, ඔබ මුලින්ම තොගය නිර්මාණය කළ දින සිට ඔබ විසින් සිදු කරන ලද වෙනත් වෙනස්කම් සමඟ ඔබේ ගබඩා කර ඇති වෙනස්කම් ගැටෙන බව පවසන්න. පොප් සහ අයදුම් කිරීම යන දෙකම ඒකාබද්ධ කිරීම ගැටුම් නිරාකරණ මාදිලිය අවුලුවන අතර එවැනි ගැටුම් මනාව නිරාකරණය කර ගැනීමට ඔබට ඉඩ සලසයි… තවද ඔබ පොප් ද අපේක්ෂා කළත් තොගයෙන් මිදෙන්නේ නැත. බොහෝ අය බලාපොරොත්තු වන්නේ තොග සරල තොගයක් පමණක් වනු ඇති බැවින්, මෙය බොහෝ විට ඔවුන් එම තොගය අහම්බෙන් පසුපසට ඇද දමන්නේ එය නැතිවී යයි සිතූ බැවිනි.

සබැඳිය: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/


8
පොප් එකක් අසමත් වූ විට එය දිගින් දිගටම පැවතීම ඇත්ත වශයෙන්ම අඩුපාඩුවක් නොවේ.
අමල්ගොවිනස්

69

git stash popඉහළ තැන්පත් කර ඇති මූලද්‍රව්‍යය යොදන අතර එය තොගයෙන් ඉවත් කරයි. git stash applyඑයම කරයි, නමුත් එය තොග ගබඩාවේ තබයි.


44

එය ක්‍රියාවෙන් දැකීමෙන් වෙනස වඩා හොඳින් තේරුම් ගැනීමට ඔබට හැකි වේ.

අපි masterශාඛාවේ වැඩ කරමින් hello.txt"හලෝ" නූල අඩංගු ගොනුවක් ඇතැයි සිතමු .

අපි ගොනුව වෙනස් කර එයට "ලෝක" නූල එකතු කරමු. දැන් ඔබට හමු වූ සුළු දෝෂයක් නිවැරදි කිරීම සඳහා වෙනත් ශාඛාවකට යාමට ඔබට අවශ්‍යය, එබැවින් ඔබට stashඔබගේ වෙනස්කම් අවශ්‍ය වේ :

git stash

ඔබ අනෙක් ශාඛාවට ගොස් දෝෂය නිරාකරණය කර ඇති අතර දැන් ඔබ ඔබේ masterශාඛාවේ දිගටම වැඩ කිරීමට සූදානම් , එබැවින් ඔබ popවෙනස්කම්:

git stash pop

දැන් ඔබ තොග අන්තර්ගතය සමාලෝචනය කිරීමට උත්සාහ කළහොත් ඔබට ලැබෙනුයේ:

$ git stash show -p
No stash found.

කෙසේ වෙතත්, ඔබ git stash applyඒ වෙනුවට භාවිතා කරන්නේ නම්, ඔබට ගබඩා කළ අන්තර්ගතය ලැබෙනු ඇත, නමුත් ඔබ එය තබා ගනී:

$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world

ඒ නිසා popදැන් අඩුක්කුව විසින් පොප් වගේ - ඒක ඇත්තටම අතර, එය පැය කාලක පමණ වෙනවා වරක් අංගයක් ඉවත් applyවැඩි වගේ නීච .


8

දී git මත්කුඩු ග්රෑම් වත්මන් වෙනස්කම් ගොනු මාරු කර ගත හැකිය ගබඩා ප්රදේශයකි.

stashඔබට ගබඩාවෙන් යම් යම් වෙනස්කම් ඇද ගැනීමට අවශ්‍ය වූ විට සහ ප්‍රදේශය gitතුළ ඇති සමහර අන්‍යොන්‍ය ලිපිගොනු වල යම් යම් වෙනස්කම් අනාවරණය කර ගැනීමට අවශ්‍ය වූ විට ප්‍රදේශය ප්‍රයෝජනවත් වේ git.

git stash apply //apply the changes without removing stored files from stash area.

git stash pop  // apply the changes as well as remove stored files from stash area.

සටහන: - git applyඑකම මැට්ටෙක් ප්රදේශයේ වෙනස්කම් අතර අදාළ git popමෙන්ම අදාළ ලෙස ඉවත් වෙනස් stashප්රදේශයේ.


2

Git Stash Pop vs applyවැඩ කිරීම

ඔබගේ ඉහළ මට්ටමේ වෙනස්කම් වර්තමාන වේදිකාගත නොවන වෙනස්වීම් වලට යෙදවීමට සහ එම තොගය මකා දැමීමට ඔබට අවශ්‍ය නම්, ඔබ ඒ සඳහා යා යුතුය git stash pop.

# apply the top stashed changes and delete it from git stash area.
git stash pop  

නමුත් ඔබගේ ඉහළම තැන්පත් කර ඇති වෙනස්කම් මකා නොදමමින් වර්තමාන වේදිකාගත නොවන වෙනස්වීම් වලට යෙදවීමට ඔබට අවශ්‍ය නම්, ඔබ ඒ සඳහා යා යුතුය git stash apply.

සටහන: ඔබට මෙම නඩුව Stackපන්තිය pop()හා peek()ක්‍රම සමඟ සම්බන්ධ කළ හැකිය , එහිදී පොප් ඉහළට අඩු කිරීම් වලින් වෙනස් කරයි (ඉහළ = ඉහළ -1) නමුත් peek()ඉහළ මූලද්‍රව්‍යය ලබා ගත හැක්කේ.

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.