මගේ සියලුම Git කොටස් එකවර මකා දැමිය හැක්කේ කෙසේද?


1431

මගේ සියලුම Git කොටස් එකවර මකා දැමිය හැක්කේ කෙසේද ?

නිශ්චිතවම මා අදහස් කළේ එක් විධානයක් ටයිප් කිරීමෙනි.

Answers:


2502

පහත දැක්වෙන විධානය මඟින් ඔබගේ සියලු කොටස් මකා දමයි:

git stash clear

සිට GIT ප්රලේඛනය :

clear

ගබඩා කර ඇති සියලුම තත්වයන් ඉවත් කරන්න.

වැදගත් අනතුරු ඇඟවීම: එම රාජ්‍යයන් පසුව කප්පාදු කිරීමට යටත් වන අතර නැවත යථා තත්ත්වයට පත් කිරීමට නොහැකි වනු ඇත (...).


14
ඇයි git stash drop?
user20358

140
@ user20358: නිසා stash drop( " .. මැට්ටෙක් ලැයිස්තුවෙන් එක් නොකෙරිණි රාජ්ය ඉවත් කරන්න කිසිම <මැට්ටෙක්> ලබා දී ඇති විට, එය නවතම එක් ඉවත් (...) ") යන ප්රශ්නය ( "පිළිතුරු නොදෙන මම කොහොමද මකා දැමිය හැක සියලු පිළිබඳ මගේ Git එකවරම තැන්පත් වේද? ")?
ටැඩෙක්

2
Ad ටැඩෙක්, හරි, stash drop එක තැනක ඇති තත්වයක් ඉවත් කරයි . නමුත් stash clearමෙම සටහන පසුව එම රාජ්‍යයන් කප්පාදු කිරීමට යටත් වන අතර ඒවා යථා තත්වයට පත් කිරීමට නොහැකි වනු ඇත. ඒ පා stash drop.ය නැත. එබැවින් කෙනෙකුට පහසුවෙන් සිතිය හැකිය මෙම විධානයන් එකම දේ නොකරන අතර විශාල වෙනසක් ඇත.
හරිත

13
පිළිගත් පිළිතුරට අමතරව - git stash clear, සියල්ල නිෂ්කාශනය වී ඇත්දැයි තහවුරු කර ගැනීම සඳහා, භාවිතා කරන්න -git stash list
කමල්

11
@ රයන්: git help <command>ලියකියවිලි ලබා ගත හැකි හොඳම ක්‍රමයයි (සහ, එය ඇත්තෙන්ම හොඳයි). මෙම අවස්ථාවෙහිදී, ඔප්පුව කරන git help stashබව පැහැදිලිව පෙන්වන්න git stash clear(මෙය මුලින් SO වෙත පැමිණ පිළිතුර ඉහළට ඔසවා තැබීමෙන් මා වළක්වා නැත ... නමුත් එය මා ගැන ඔබට වඩා කියන්නේ git: D)
මාකෝ මැසෙන්සියෝ

50

තොගයක් මකා දැමීමට ක්‍රම දෙකක් තිබේ:

  1. ඔබට තවදුරටත් විශේෂිත තොගයක් අවශ්‍ය නොවේ නම්, ඔබට එය සමඟ මකා දැමිය හැකිය : $ git stash drop <stash_id>.
  2. ඔබට පහත සඳහන් දෑ සමඟ ගබඩාවෙන් මකා දැමිය හැකිය : $ git stash clear.

මේ දෙකම පරිස්සමින් භාවිතා කරන්න, වරක් මකාදැමූ කොටස් නැවත ලබා ගැනීම දුෂ්කර විය හැකිය.

මෙන්න යොමු ලිපිය .


2
පර්යන්තය වැසීම එයට කිසිදු සම්බන්ධයක් නැත. git ඩීමන් නොවේ; එය ක්‍රියාත්මක වන්නේ ඔබ එය අමතන විට පමණි. ඔබ ටර්මිනලය වසා දැමූ බවක් එහි අදහසක් නැත.
ඩිලන් යූං

34

මෙම විධානය මඟින් ඔබට සියලු වෙනස්වීම් බැලීමට හැකි වේ.

git stash list

මෙන්න පහත දැක්වෙන විධානය මඟින් ඔබගේ සියලු වෙනස්කම් ඉවත් කිරීමට එය භාවිතා කරන්න

git stash clear

දැන් ඔබට තොග ප්‍රදේශයෙන් ගබඩා කර ඇති වෙනස්කම් වලින් එකක් මකා දැමීමට අවශ්‍ය නම්

git stash drop stash@{index}   // here index will be shown after getting stash list.

සටහන: git stash listgit හි තොග ප්‍රදේශයෙන් දර්ශකය ලබා ගැනීමට ඔබට හැකියාව ලබා දෙයි.


අවම වශයෙන් වින්ඩෝස් 10 භාවිතා කරමින් VSCode හි ඒකාබද්ධ පර්යන්තය සඳහා, එය අපෝස්ට්‍රොෆි සමඟ බව සඳහන් කිරීම වටී git stash drop 'stash@{index}'.
ඔරියෝල් මිරෝ

13

මට අවශ්‍ය වූයේ මෑත කාලීන කොටස් කිහිපයක් තබා ගැනීමටයි, නමුත් අනෙක් සියල්ල මකන්න.

ඔබ එකක් අතහැර දැමූ විට සියලු කොටස් නැවත ගණන් කර ඇති නිසා, මෙය ඇත්තෙන්ම පහසුය. Stash {19 than ට වඩා පැරණි සියලුම කොටස් මකා දැමීමට:

while git stash drop 'stash@{20}'; do true; done

Git 2.11 හි හඳුන්වා දී ඇති සුචිගත කළ අගයන් සඳහා මෙය අදාළ වේද, එහිදී ඔබට git stash pop 3ඒ වෙනුවට භාවිතා කරමින් තොග ලැයිස්තුවෙන් 3 වන තොගය යොමු කළ හැකිද? මට දැන ගැනීමට අවශ්‍ය වූයේ අපට whileදර්ශක අගයන් භාවිතා කර ලූප සහ ඩ්‍රොප් ස්ටෑෂ් භාවිතා කළ හැකිද යන්නයි.
tom_mai78101

මම මෙහි සරලත්වයට කැමතියි, ලස්සන අලංකාර විසඳුමක්!
ඩොමිනික්

4

ඔබට නවතම තොගය හෝ කිසියම් විශේෂිත දර්ශකයක් ඉවත් කිරීමට අවශ්‍ය නම් -

git stash drop type_your_index

> git stash list

  stash@{0}: abc
  stash@{1}: xyz
  stash@{1}: pqr

> git stash drop 0

  Dropped refs/stash@{0}

> git stash list

  stash@{0}: xyz
  stash@{1}: pqr

ඔබට සියලු තොග එකවර ඉවත් කිරීමට අවශ්‍ය නම් -

> git stash clear
>

> git stash list
>

අවවාදයයි : අවසන් වූ පසු ඔබේ තොගය ආපසු හරවා යැවිය නොහැක


3

මට තවත් අවශ්‍යතාවයක් තිබුනේ තොග කිහිපයක් පමණක් ඉවත් කිරීම පමණි, පහත කේතය එම අවස්ථාවේ දී ප්‍රයෝජනවත් වනු ඇත.

#!/bin/sh
for i in `seq 5 8`
do
   git stash drop stash@{$i}
done

/ * දර්ශකය 5 සිට 8 දක්වා මකා දමනු ඇත * /


උත්සාහ කරන්නfor iterator in `seq 5 8`; git stash drop stash@{$iterator}; done
ක්‍රිස් මැකෝවන්

3
ඔබ පහත වැටෙන විට, ඉතිරි කොටස් 1 ස්ථානය දක්වා ඉහළට යන බව සලකන්න. එබැවින් ඔබට 5 සිට 8 දක්වා ඉවත් කිරීමට අවශ්‍ය නම්, ඔබට පිටුපසට ගණන් කිරීම හෝ st {5 st තොගය හතර වතාවක් ඉවත් කිරීම අවශ්‍ය වේ. උදාහරණයක් ලෙස: for i in `seq 4`; do git stash drop 'stash@{5}'; done
warp

2

දින 40 ට වඩා පැරණි සියලුම කොටස් මකා දැමීමට, භාවිතා කරන්න:

git reflog expire --expire-unreachable=40.days refs/stash

--dry-runමකාදැමූ කොටස් මොනවාදැයි බැලීමට එක් කරන්න .

පැහැදිලි කිරීමක් සහ වැඩි විස්තර සඳහා https://stackoverflow.com/a/44829516/946850 බලන්න .

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.