වත්මන් Git වැඩ කරන ගසෙන් දේශීය (නොකැඩූ) ගොනු ඉවත් කරන්නේ කෙසේද


6846

ඔබගේ වර්තමාන වැඩ කරන ගසෙන් හඳුනා නොගත් දේශීය ලිපිගොනු මකා දමන්නේ කෙසේද?


86
මෙම අන්තර්ක්‍රියාකාරී git cheat sheet ndpsoftware.com/git-cheatsheet.html මඟින් git වැඩබිම පෙන්වයි (google ඔබට "වැඩ කරන පිටපතට " වඩා " වැඩපොළ " සමඟ වඩා හොඳ ප්‍රති results ල ලබා දෙයි).
qneill

28
සටහන: ඔබට අවශ්‍ය නොවූ ලිපිගොනු කිහිපයක් ඉවත් කිරීමට අවශ්‍ය නම් , නමුත් ඒවා සියල්ලම නොවේ , git cleanදැන් අන්තර්ක්‍රියාකාරී මාදිලියක් ඇත! මෙම අනෙක් ප්‍රශ්නයට මගේ පිළිතුර බලන්න : git 1.8.4+
VonC

17
ශාඛාව බැඳීමක් සඳහා යොමු කිරීමක් වන බැවින් ඔබ git ශාඛාවෙන් ගොනු ඉවත් නොකරන බව සලකන්න. ඒවා වැඩකරන නාමාවලියෙහි පමණක් පවතින අතර ශාඛා සමඟ කිසිදු සම්බන්ධයක් නොමැත. එය බොහෝ විට පාරිභාෂිතය පැහැදිලි කිරීමකි.
පවෙල් ඉමර්ඩා

6
ආරම්භක නොවන සහ Git-run git තත්වයට අලුතින් සිටින අය පිළිබඳ අවබෝධය ලබා ගැනීම සඳහා සහ එය ගොනුවක් නිරුපද්‍රිතව පෙන්වන්නේ නම් සහ එම ගොනුව repo තුළ ඔබට අවශ්‍ය නොවන්නේ නම්, ඔබට ඔබේ ගොනු පද්ධතියට ගොස් එය මකා දැමිය හැකිය. . මෙය ඔබගේ දේශීය ගබඩාවට හෝ Git ට නරක දෙයක් නොකරනු ඇත. git cleanතෝරාගත් ලිපිගොනු මකා දැමීම සඳහා අන්තර්ක්‍රියාකාරී අනුවාදය ද ඇතුළුව ඔබට පහත පිළිතුරු වල යම් වෙනසක් භාවිතා කළ හැකිය , නමුත් අන්තර්ක්‍රියාකාරී මාදිලිය වෙහෙසකාරී විය හැකිය. ඔයා මොන දේ කලත්, වග බලා ගන්න ඔබට තේරුම් කරන්න git cleanමකා හෝ භාවිතා කරනු ඇත --dry-run, එය කිසිවක් මකා තොරව ඔබට කියමි කිරීමට.
ලයිට්සීසී

4
ලිපිගොනු තවමත් ලුහුබැඳ නොමැති නම්, ඔබට ඒවා git නොමැතිව ඉවත් කළ නොහැකිද? rm files-to-be-deleted
mhatch

Answers:


8738

git-clean - වැඩ කරන ගසෙන් ඉවත් නොකළ ගොනු ඉවත් කරන්න

සාරාංශය

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

විස්තර

වත්මන් නාමාවලියෙන් පටන් ගෙන අනුවාද පාලනයට යටත් නොවන ගොනු නැවත නැවත ඉවත් කිරීමෙන් වැඩ කරන ගස පිරිසිදු කරයි .

සාමාන්‍යයෙන්, Git නොදන්නා ගොනු පමණක් ඉවත් කරනු ලැබේ, නමුත් -xවිකල්පය නියම කර ඇත්නම් , නොසලකා හරින ලද ගොනු ද ඉවත් කරනු ලැබේ. නිදසුනක් ලෙස, සියලු නිමැවුම් නිෂ්පාදන ඉවත් කිරීමට මෙය ප්‍රයෝජනවත් වේ.

කිසියම් විකල්ප <path>...තර්කයක් ලබා දෙන්නේ නම්, එම මාර්ග පමණක් බලපායි.


පියවර 1 යනු -nවිකල්පය භාවිතා කර මකා දැමිය යුතු දේ පෙන්වීමයි:

# Print out the list of files which will be removed (dry run)
git clean -n

පිරිසිදු පියවර - පරෙස්සම් වන්න: මෙය ගොනු මකා දමනු ඇත :

# Delete the files from the repository
git clean -f
  • නාමාවලි ඉවත් කිරීමට, ධාවනය git clean -f -dහෝgit clean -fd
  • , නොසලකා ගොනු ඉවත් ක්රියාත්මක කිරීමට git clean -f -Xහෝgit clean -fX
  • නොසලකා හා රාජ්ය නොවන නොසලකා ගොනු, ලකුණු ඉවත් කිරීමට git clean -f -xහෝgit clean -fx

Xපසු විධාන දෙක සඳහා වන සිද්ධි වෙනස සැලකිල්ලට ගන්න .

නම් clean.requireForceඔබගේ සැකසුම් දී "සත්යය" (ප්රකෘතිය) සකසා ඇත, එක් නියම කිරීමට අවශ්ය -fනැත්නම් කිසිම දෙයක් ඇත්තටම සිදු වනු ඇත.

git-cleanවැඩි විස්තර සඳහා නැවත ලියකියවිලි බලන්න .


විකල්ප

-f, --force

Git වින්‍යාස විචල්‍යය clean.requireForce අසත්‍ය ලෙස සකසා නොමැති නම්, ලබා නොදුනහොත් git clean ධාවනය කිරීම ප්‍රතික්ෂේප කරනු ඇත -f, -nනැතහොත් -i.

-x

.Gitignore (බහලුමකට) කියවන සම්මත නොසලකා හැරීමේ නීති භාවිතා නොකරන්න $GIT_DIR/info/exclude, නමුත් -eවිකල්ප සමඟ ලබා දී ඇති නොසලකා හැරීමේ නීති තවමත් භාවිතා කරන්න . නිමැවුම් නිෂ්පාදන ඇතුළුව සියලුම නොකැඩූ ගොනු ඉවත් කිරීමට මෙය ඉඩ දෙයි. පිරිසිදු ගොඩනැඟිල්ලක් පරීක්ෂා කිරීම සඳහා නියම වැඩකරන නාමාවලියක් නිර්මාණය කිරීම සඳහා මෙය (සමහර විට git reset සමඟ ඒකාබද්ධව) භාවිතා කළ හැකිය.

-X

Git විසින් නොසලකා හරින ලද ගොනු පමණක් ඉවත් කරන්න. මුල සිටම සියල්ල නැවත ගොඩනඟා ගැනීමට මෙය ප්‍රයෝජනවත් විය හැකි නමුත් අතින් සාදන ලද ලිපිගොනු තබා ගන්න.

-n, --dry-run

ඇත්ත වශයෙන්ම කිසිවක් ඉවත් නොකරන්න, කළ යුතු දේ පෙන්වන්න.

-d

හඳුනා නොගත් ලිපිගොනු වලට අමතරව හඳුනා නොගත් නාමාවලි ඉවත් කරන්න. හඳුනා නොගත් නාමාවලිය වෙනත් Git ගබඩාවක් මගින් කළමනාකරණය කරන්නේ නම්, එය පෙරනිමියෙන් ඉවත් නොකෙරේ. -fඔබට එවැනි නාමාවලියක් ඉවත් කිරීමට අවශ්‍ය නම් දෙවරක් විකල්පය භාවිතා කරන්න .


288
git clean -fඑය ක්‍රියාත්මක වන නාමාවලියෙහි (සහ උප බහලුම්) පමණක් ක්‍රියාත්මක වේ. වැඩ කරන සම්පූර්ණ පිටපත පිරිසිදු කිරීමට ඔබට අවශ්‍ය නම්, ඔබ එය එහි මූල නාමාවලියෙන් අමතන්න.
එඩ්වාඩෝ බෙසෙරා

17
එය .gitignore තුළ ඇති සියලුම ගොනු ඉවත් කරයි. .Gitignore හි නොමැති නව / නැති ගොනු / ෆෝල්ඩර පමණක් මට මකා දැමිය යුතුය
කොස්ටානෝස්

24
Ost කොස්ටානෝස් .gitignore හි ඇති ගොනු ඉවත් කිරීමට ඔබට අවශ්‍ය නැතිනම්, -x ධජය ලබා නොදෙන්න.
ලො-ටැන්

52
git clean -f :/ඔබ එය root repo dir හි ධාවනය කර ඇති ආකාරයට ක්‍රියා කරයි. පසු පිළිතුරු ද උප මොඩියුල සඳහා ගණනය කිරීම බලන්නgit clean -ffxd :/
මෙහි

18
Ic මිචෙල් git clean -xfd ඔබගේ .Gitignore හි දැනට ගොනු කර ඇති සියලුම ලිපිගොනු ඉවත් කරනු ඇත. ඒවා නැවත ලබා ගත නොහැක
thedanotto

987

නාමාවලි ද ඉවත් git clean -f -dකර ඇති බවට වග බලා ගැනීමට භාවිතා කරන්න .

  1. ඇත්ත වශයෙන්ම කිසිවක් ඉවත් නොකරන්න, කළ යුතු දේ පෙන්වන්න.

    git clean -n
    

    හෝ

    git clean --dry-run
    
  2. හඳුනා නොගත් ලිපිගොනු වලට අමතරව හඳුනා නොගත් නාමාවලි ඉවත් කරන්න. හඳුනා නොගත් නාමාවලිය වෙනත් Git ගබඩාවක් මගින් කළමනාකරණය කරන්නේ නම්, එය පෙරනිමියෙන් ඉවත් නොකෙරේ. -fඔබට එවැනි නාමාවලියක් ඉවත් කිරීමට අවශ්‍ය නම් දෙවරක් විකල්පය භාවිතා කරන්න .

    git clean -fd
    

එවිට ඔබගේ ලිපිගොනු සැබවින්ම නැතිවී ඇත්දැයි පරීක්ෂා කළ හැකිය git status.


115
කලින් සඳහන් කළ පරිදි, එය git clean -n -d
වියළීමට හොඳය

15
එකම දෙය නම් git clean -ndසහ git clean -fd.
මයිකර්

478

මීට පෙර කිසිවෙකු මෙය සඳහන් නොකිරීම ගැන මම පුදුම වෙමි:

git clean -i

එය අන්තර්ක්‍රියාකාරිත්වය සඳහා වන අතර බලපෑමට ලක්වූ ලිපිගොනු ඇතුළත් කිරීමට / බැහැර කිරීමට ඔබට අවස්ථාව ලබා දෙමින් මකා දැමීමට යන දේ පිළිබඳ ඉක්මන් දළ විශ්ලේෂණයක් ඔබට ලැබෙනු ඇත. සමස්තයක් වශයෙන්, --dry-runසැබෑ පිරිසිදු කිරීමට පෙර අනිවාර්යය ධාවනය කිරීමට වඩා වේගවත් .

ඔබට -dහිස් ෆෝල්ඩර ගැන සැලකිලිමත් වීමට අවශ්‍ය නම් ඔබට එය විසි කිරීමට සිදුවේ. අවසානයේදී, එය ලස්සන අන්වර්ථයක් ඇති කරයි:

git iclean

එසේ පැවසුවහොත්, අන්තර්ක්‍රියාකාරී විධානයන් වැඩිපුර තබා ගැනීම පළපුරුදු පරිශීලකයින්ට වෙහෙසකර විය හැකිය. මේ දිනවල මම දැනටමත් සඳහන් කර ඇති දේ භාවිතා කරමිgit clean -fd


16
4 pal4life එය 1.8.4 දී එකතු කරන ලදි, ඔබ පැරණි git අනුවාදයක් ධාවනය කරන්නේද? github.com/git/git/blob/master/Documentation/RelNotes/1.8.4.txt
Backman

මම මේකට කැමතියි - වෙනත් විකල්පයන්ට වඩා මගේ බෑෂ් ඉතිහාසයේ එය තිබීම මට වඩාත් පහසුය, මන්ද මම අහම්බෙන් එයට ctrl-r හෝ ctrl-p නම් එය ලොකු දෙයක් නොවේ.
csvoss

එය git clean -iක්‍රියාත්මක වන්නේ පිටපතෙහි මුල සිට කැඳවනු ලැබුවහොත් පමණක් විය හැකිද ?
ඇලෙස්සැන්ඩ්‍රෝ ජේකොප්සන්


250

හඳුනා නොගත් නාමාවලිය තමන්ගේම (උදා -f.

git clean -d -f -f


4
BTW, මෙය ලියකියවිලි වලින් ලියා ඇත : තත්පර -f ලබා නොදුනහොත් .git උප නාමාවලිය හෝ ගොනුව සහිත නාමාවලි මකා දැමීම Git ප්‍රතික්ෂේප කරයි. කෙසේ වෙතත් ස්තූතියි!
මැක්සිම් සුස්ලොව්

248

හඳුනා නොගත් ලිපිගොනු ඉවත් කිරීමට සරල ක්‍රමය

සියලු untracked ගොනු ඉවත් කිරීම සඳහා, මෙම සරල ක්රමය නම් , පළමුව ඒවා සියලු එකතු සහ ප්රති නැවත සකස් පහත ලෙස

git add --all
git reset --hard HEAD


8
ඔබ විස්ථාපනය කල හැකි git add --allවිසින් git add .. එබැවින් ඔබට එය කෙටි ආකාරයකින් ඔන්ලයින් ආකාරයෙන් කළ හැකිය git add . && git reset --hard HEAD ( මෙම විධානය සමඟ ඉතා ප්‍රවේශම් වන්න) .
රූසෝ ඇලෙක්සැන්ඩ්‍රේ

22
ඇයි මෙය භාවිතා කරන්නේ git clean?
user2864740

8
නිසා git cleanපැහැදිලිවම ද නොසලකා ඇති සියල්ල දමයි. එය මගේ node_modulesෆෝල්ඩරය මකා දැමීය . මෙය කිරීමෙන් පළමුව නොසලකා හරින ලද ඒවා හැර අනෙකුත් සියලුම ගොනු වේදිකා ගත වන අතර පසුව නැවත සැකසීමෙන් ඒවා මකා දැමෙනු ඇත. නොසලකා හරින ලද ලිපි ස්පර්ශ නොකරනු ඇත.
ඇන්ඩ්‍රියාස්

5
And ඇන්ඩ්‍රියාස් එය මා වෙනුවෙන් නොසලකා හරින ලද ගොනු මකා නොදමයි (git 2.14.1). සැබෑ මකාදැමීමට පෙර (හෝ භාවිතා කිරීමට ) ඔබgit clean -n කෙසේ හෝ ධාවනය කළ යුතුයgit clean -i .
Qw3ry

8
git cleanනොසලකා හරින ලද ගොනු මකා දමන්නේ ඔබ -xහෝ -Xවිකල්පය භාවිතා කරන්නේ නම් පමණි , එසේ නොමැති නම් එය ඉවත් නොකළ ගොනු මකා දමයි.
doubleDown

140

මම කැමතියි git stash push -uඔබට ඒවා සියල්ලම අහෝසි කළ හැකි නිසා git stash pop.

සංස්කරණය කරන්න: තවද, නොකැඩූ ගොනුවක් තොගයක් තුළ පෙන්වීමට මම ක්‍රමයක් සොයා ගතිමි (උදා git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

EDIT2: git stash saveපක්ෂව ප්‍රතික්ෂේප කර ඇත push. ස්තූතියි @ ස්ක්‍රිප්ට්-වෘකයා.


3
ඔබට තොගය මත -u පැහැදිලි කළ හැකිද? එය git stash save ට වඩා වෙනස් ලෙස ක්‍රියා කරන්නේ කෙසේදැයි මම අනුගමනය නොකරමි. මම මෙය උත්සාහ කළ අතර එය සාර්ථක විය. Git docs දෙස බැලූ අතර එය එහි සොයාගත නොහැකි විය.
වින්නෙමූකා

9
-uසමාන වේ --include-untracked. ඔබට උදව්වක් සොයාගත හැකිය git help stash.
හිරෝෂි

3
@ හිරෝෂි ස්තූතියි! විවිධ පුද්ගලයින් දුසිමකින් සෑම ඩාර්න් විසඳුමක්ම උත්සාහ කිරීමෙන් පසු මෙය අවසාන වශයෙන් ක්‍රියාත්මක වූයේ ... තිරිඟු! ගිට් ස්ටෑෂ් එකක් පවා නාඩා කළා. ඉතිරි කිරීම - ඔබ සොයා නොගත් අය ගැන සැලකිලිමත් විය. දැඩි / පිරිසිදු බලය නැවත සකස් කරන්න / යනාදිය මේ කිසිවක් මා වෙනුවෙන් කිසිවක් කළේ නැත.
killjoy

3
මෙම saveවිකල්පය පක්ෂව නොසලකා හරිනු ලැබීය pushඑම නමුත් වැඩි යමක් කරන,. ඔබට මෙහි වැඩිදුර කියවිය හැකිය, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952
Script Wolf

120

මම නිතරම භාවිතා කරන්නේ මෙයයි:

git clean -fdx

ඉතා විශාල ව්‍යාපෘතියක් සඳහා ඔබට එය දෙවරක් ක්‍රියාත්මක කිරීමට අවශ්‍ය විය හැකිය.


Ar මාටින් මා වැඩ කරමින් සිටින එක් ව්‍යාපෘතියක් වන්නේ +8 සංවර්ධකයින් සක්‍රියව කේතනය කිරීම සමඟ අවුරුදු 8 ක් පැරණි ය. පළමු වරට එය පිරිසිදු කිරීමට Git සමහර විට අසමත් වේ.
ඔස්කාර් ෆ්‍රැක්සෙඩාස්

1
මට මෙය සනාථ කළ හැකිය, එබැවින් මෙය 2020 දී තවමත් වලංගු වේ. අපි ද විශාල ව්‍යාපෘතියක වැඩ කරමින් සිටින අතර GIT විසින් තවත් ලිපිගොනු මකා දැමීමට සොයා නොගන්නා තෙක් මට එය 4-5 වාරයක් ක්‍රියාත්මක කිරීමට සිදුවිය.
turbolocust

90

git-clean යනු ඔබ සොයන දෙයයි. වැඩ කරන ගසෙන් ඉවත් නොකළ ගොනු ඉවත් කිරීමට එය භාවිතා කරයි.


86

විශේෂිත උප බහලුමෙන් ඉවත් නොකළ ගොනු ඉවත් කිරීමට අවශ්‍ය නම්,

git clean -f {dir_path}

නොසලකා හරින ලද dir / ගොනු සහ නොසලකා හරින ලද ගොනු මකා දැමීමට ඒකාබද්ධ ක්‍රමයක්.

git clean -fxd {dir_path}

මෙයින් පසු ඔබට වෙනස් කළ ගොනු ඇත්තේ ඇතුලත පමණි git status.


68

මෙම repo + උප මොඩියුලවල ඇති සියලුම අතිරේක ෆෝල්ඩර සහ ගොනු ඉවත් කරන්න

මෙය ඔබව නැවුම් ක්ලෝන තත්වයට පත් කරයි.

git clean -ffdx

මෙම repo හි ඇති සියලුම අතිරේක ෆෝල්ඩර සහ ගොනු ඉවත් කරන්න, නමුත් එහි උප මොඩියුල නොවේ

git clean -fdx

අමතර ෆෝල්ඩර ඉවත් කරන්න, නමුත් ලිපිගොනු නොවේ (උදා: ගොඩනැගීම හෝ ලොග් ෆෝල්ඩරය)

git clean -fd

අමතර ෆෝල්ඩර + නොසලකා හරින ලද ගොනු ඉවත් කරන්න (නමුත් අලුතින් එකතු කරන ලද ගොනු නොවේ)

ගොනුව නොසලකා හැර නොමැති අතර තවමත් පරීක්ෂා කර නොමැති නම් එය පවතිනු ඇත. X ප්‍රාග්ධනය සැලකිල්ලට ගන්න.

git clean -fdX

නව අන්තර්ක්‍රියාකාරී ප්‍රකාරය

git clean

57

git clean -fd නාමාවලිය ඉවත් කරයි

git clean -fX නොසලකා හරින ලද ගොනු ඉවත් කරයි

git clean -fx නොසලකා හරින ලද සහ නොසලකා හරින ලද ගොනු ඉවත් කරයි

ඉහත විකල්ප සියල්ලම ඒකාබද්ධව භාවිතා කළ හැකිය

git clean -fdXx

වැඩි උදව් සඳහා git අත්පොත පරීක්ෂා කරන්න


10
විධානය git clean -fdXxමඟින් "මාරාන්තික: -x සහ -X එකට භාවිතා කළ නොහැක" (git-2.8 භාවිතා කරමින්) දෝෂ පණිවිඩය නිපදවයි . ඔබගේ පිළිතුර තුළ ඇති අවසාන වාක්‍යය සඳහා කරුණාකර git අත්පොතට සබැඳියක් සපයන්න. චියර්ස්
ඔලිබ්‍රේ

විධාන දෙක අනුපිළිවෙලින් ක්‍රියාත්මක කරන්න: git clean -fdX, git clean -fdx
ඔරලෝසුව ZHONG

55

හරි, අනවශ්‍ය හඳුනා නොගත් ලිපිගොනු සහ ෆෝල්ඩර මකා දැමීම gitවිධාන රේඛාවේදී භාවිතා කිරීම පහසුය , එය මේ ආකාරයට කරන්න:

git clean -fd

කිසිදු ඉතිහාසයක් නොමැතිව ලිපිගොනු සහ ෆෝල්ඩර මකා දැමිය හැකි බැවින් එය කිරීමට පෙර දෙවරක් පරීක්ෂා කරන්න ...

මෙම අවස්ථාවේ දී, -fබලය -dවෙනුවෙන් පෙනී සිටින අතර නාමාවලිය නියෝජනය කරයි ...

එබැවින්, ඔබට ගොනු පමණක් මකා දැමීමට අවශ්‍ය නම්, ඔබට භාවිතා කළ -fහැක්කේ:

git clean -f

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

git clean -fd

එසේම, -xgit විසින් නොසලකා හරින ලද ගොනු ඇතුළත් කිරීම සඳහා ඔබට ධජය භාවිතා කළ හැකිය . ඔබට සියල්ල මකා දැමීමට අවශ්‍ය නම් මෙය ප්‍රයෝජනවත් වනු ඇත.

-iධජය එක් කිරීම , ගමනේදී ලිපිගොනු එකින් එක මකා දැමීමට අවසර ඉල්ලයි.

ඔබට විශ්වාස නැතිනම් පළමුව දේවල් පරීක්ෂා කිරීමට අවශ්‍ය නම්, -nධජය එක් කරන්න .

-qසාර්ථක මකාදැමීමෙන් පසු කිසිදු වාර්තාවක් බැලීමට ඔබට අවශ්‍ය නැතිනම් භාවිතා කරන්න .

එය වඩාත් මතක තබා ගැනීම සඳහා මම පහත රූපය නිර්මාණය කරමි, විශේෂයෙන් බොහෝ අය -fෆෝල්ඩරය පිරිසිදු කිරීම සඳහා ව්‍යාකූල වීම හෝ එය කෙසේ හෝ මිශ්‍ර කිරීම මම දැක ඇත්තෙමි !


අනවශ්‍ය හඳුනා නොගත් ලිපිගොනු සහ ෆෝල්ඩරය මකා දැමීම


එම රූපය සමඟ ඇත්තේ කුමක්ද?
පැසීරියර්

37

වඩා හොඳ ක්‍රමයක් භාවිතා කිරීම: git clean

git clean -d -x -f

මෙය (-d)නොසලකා හරින ලද නාමාවලි සහ ගොනු ඇතුළුව හඳුනා නොගත් ගොනු ඉවත් කරයි git (-x).

එසේම, වෙනුවට -fසමඟ බහින්බස් -nඉටු කිරීමේ dry-runහෝ -iඅන්තර් මාදිලිය සඳහා සහ එය ඉවත් කෙරෙනු ඇත දේ ඔබට කියමි.


25

පරිශීලක අන්තර්ක්‍රියාකාරී ප්‍රවේශය:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

-i අන්තර්ක්‍රියාකාරී
-f සඳහා බල
-d සඳහා ඩිරෙක්ටරිය
-x නොසලකා හරින ලද ගොනු සඳහා (අවශ්‍ය නම් එකතු කරන්න)

සටහන: එය කරන්නේ කුමක් දැයි පරීක්ෂා කිරීම සඳහා -n හෝ --dry-run එකතු කරන්න.


20

එවැනි තත්වයක් සඳහා ජීවිතාරක්ෂාවක් මා විසින් නිර්මාණය කර අත්හදා බැලුවෙමි (එය මනාව ක්‍රියාත්මක වේ):

git add .
git reset --hard HEAD

පරෙස්සම් වන්න! මෙය සිදු කිරීමට පෙර අවශ්‍ය වෙනස්කම් (සොයා නොගත් ලිපිගොනු වල පවා) කිරීමට වග බලා ගන්න .


3
අවම වශයෙන් මෙය වෙනස් ප්‍රවේශයකි. :) තවත් ක්‍රමයක් නම්, මකාදැමුණු ලිපිගොනු මතක තබා ගත හැකි නමුත් කිසිදු ශාඛාවක නොවේ:git add . git commit -m 'about to delete' git reset --hard HEAD~
joeytwiddle

2
ඊටත් වඩා git add . && git reset --hard HEAD
ඉක්මන්ම

3
git add . && git reset --hard
ප්ලයිමෝර්

ඔබ කිරීමට බලාපොරොත්තු වන වෙනස්කම් ද තිබේ නම් මෙය ඔබට අවශ්‍ය නොවනු ඇත.
lacostenycoder

Lex ඇලෙක්සැන්ඩර්මිල්ස් විසින් git reset --hardසියලු නොගැලපෙන වෙනස්කම් නැවත සකසයි, නමුත් නවතම කැපවීමේ තත්වයට අස්ථිර ලිපිගොනු . අපට පළමුවෙන්ම අවශ්‍ය වන්නේ එබැවිනි git add .- එමඟින් සියලු නොකැඩූ ලිපිගොනු ස්ථානගත කරයි (එබැවින් ඒවාද නැවත සකසනු ලැබේ)
තයිබ්සි

19

git clean -f -d -x $(git rev-parse --show-cdup)නිධිය නාමාවලි ගසක් තුළ ඔබ එය කොතැනට හැඳින්වුවද, මූල නාමාවලියට පිරිසිදු වේ. ඔබ එය දැන් වැඩ කරන ෆෝල්ඩරයෙන් ඉවත් වීමට බල නොකරන අතර ඔබ සිටින ස්ථානයේ සිටම පිරිසිදු කිරීමට හා කැපවීමට ඉඩ සලසන බැවින් මම එය නිතරම භාවිතා කරමි.

කොඩි ඇති බවට වග බලා ගන්න -f, -d, -xඔබගේ අවශ්යතාවන්ට ගැළපෙන:

-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.

-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.

-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

වෙනත් කොඩි ද තිබේ, පරීක්ෂා කරන්න git clean --help.


BTW ඔබට කළ හැක්කේ git clean {flags}: / එබැවින් එය ඔබ repo root හි විධානය ක්‍රියාත්මක
කළාක් මෙනි

19

මට නම් පහත සඳහන් වැඩ පමණි:

git clean -ffdx

අනෙක් සෑම අවස්ථාවකම, සමහර උප බහලුම් සඳහා මට "මඟ පෙන්වන නාමාවලිය" පණිවිඩය ලැබුණි .


2
ස්තූතියි. .Gitignore හි ගොනු මකා දැමීම වළක්වා ගැනීමට මම -xභාවිතා git clean -ffdකළෙමි.
ෆෙක්මෝර්

15

ඔබට 'git status' මගින් ලැයිස්තුගත කර නොමැති ගොනු මකා දැමීමට අවශ්‍ය නම්

git stash save -u
git stash drop "stash@{0}"

මම මෙය 'git clean' වලට වඩා කැමති නිසා 'git clean' මඟින් git විසින් නොසලකා හරින ලද ගොනු මකා දමනු ඇත, එබැවින් ඔබගේ ඊළඟ ගොඩනැගීම සඳහා සියල්ල නැවත ගොඩනඟා ගත යුතු අතර ඔබගේ IDE සැකසුම්ද ඔබට අහිමි විය හැකිය.


3
මෙය ලුහුබැඳ ඇති ලිපිගොනු වල වලංගු වෙනස්කම් ඉවත් කරයි. මම එය නිර්දේශ නොකරමි.
code_dredd

2
ඔව්, ඔබට පළමුව ලුහුබැඳ ඇති ලිපිගොනු වල වෙනස්කම් කිරීමට අවශ්‍යය.
jazzdev

14

ඇත්ත වශයෙන්ම මකා දැමීමට පෙර මකා දැමිය යුතු දේ දැන ගැනීමට:

git clean -d -n

එය මෙවැනි දෙයක් ප්‍රතිදානය කරයි:

Sample.txt ඉවත් කරයි

පෙර විධානයේ ප්‍රතිදානයේ ලැයිස්තුගත කර ඇති සියල්ල මකා දැමීමට:

git clean -d -f

එය මෙවැනි දෙයක් ප්‍රතිදානය කරයි:

Sample.txt ඉවත් කිරීම


11

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

git clean -fdn

මකා දැමිය යුතු ලිපිගොනු ලැයිස්තුව මෙය ඔබට පෙන්වනු ඇත. දැන් එම ගොනු සැබවින්ම මකා දැමීමට මෙම විධානය භාවිතා කරන්න:

git clean -fd

11

`Git clean` විධානය ක්‍රියාත්මක කිරීමේදී ප්‍රවේශම් වන්න.

-nසත්‍ය විධානය ක්‍රියාත්මක කිරීමට පෙර සැමවිටම භාවිතා කරන්න, එමඟින් ඉවත් කළ යුතු ගොනු මොනවාදැයි පෙන්වයි.

git clean -n -d 
git clean -f -d

පෙරනිමියෙන්, git cleanනොසලකා හරිනු නොලබන ගොනු ඉවත් කරනු ලැබේ. ඔබගේ .gitignore හෝ වෙනත් නොසලකා හරින ලද ගොනු වල රටාවකට ගැලපෙන ඕනෑම ගොනුවක් ඉවත් නොකෙරේ. ඔබට එම ලිපිගොනු ඉවත් කිරීමට අවශ්‍ය නම්, ඔබට -xපිරිසිදු විධානයට a එකතු කළ හැකිය .

git clean -f -d -x

-iපිරිසිදු විධානය සමඟ අන්තර්ක්‍රියාකාරී මාදිලියක් ද ඇත

git clean -x -i

විකල්පයක් ලෙස

ඔබගේ අනුමත නොකළ කාර්යය මකා දැමීම ආරක්ෂිත බව ඔබට 100% විශ්වාස නැත්නම්, ඔබට ඒ වෙනුවට ගබඩා කිරීම භාවිතා කළ හැකිය

git stash --all

එමෙන්ම එය ඔබගේ බහලුම ඉවත් නමුත් ඔබ භාවිතා කාලය තුළ කිසිදු අවස්ථාවක ගොනු යළි ලබාගැනීම සඳහා නම්යශීලී බවක් ලබා දෙනු ඇත මැට්ටෙක් සමග අදාළ හෝ පොප් . පසුව ඔබට ඔබේ තොගය ඉවත් කළ හැකිය:

git stash drop // or clean

2
git stash save and type some comment as to what this stash was for
තොගය

9

git clean -f to remove untracked files from working directory.

මම මගේ බ්ලොග් අඩවියේ මූලික කරුණු කිහිපයක් ආවරණය කර ඇත, git-intro-basic-command


9

uggested විධානය git docs වෙතින් ගොනු ඉවත් කිරීම වේ GIT පිරිසිදු

git clean - වැඩ කරන ගසෙන් ඉවත් නොකළ ගොනු ඉවත් කරන්න

යෝජිත ක්‍රමය: අන්තර්ක්‍රියාකාරී ප්‍රකාරය භාවිතා git clean -i කිරීමෙන් අපට එය පාලනය කළ හැකිය. ඉතිරිව ඇති විකල්පයන් බලමු.

පවතින විකල්ප:

git clean 
    -d -f -i -n -q -e -x -X (can use either)

පැහැදිලි කිරීම:

1. -d

හඳුනා නොගත් ලිපිගොනු වලට අමතරව හඳුනා නොගත් නාමාවලි ඉවත් කරන්න. හඳුනා නොගත් නාමාවලිය වෙනත් Git ගබඩාවක් මගින් කළමනාකරණය කරන්නේ නම්, එය පෙරනිමියෙන් ඉවත් නොකෙරේ. ඔබට එවැනි නාමාවලියක් ඉවත් කිරීමට අවශ්‍ය නම් දෙවරක් -f විකල්පය භාවිතා කරන්න.

2. -f, --force

Git වින්‍යාස විචල්‍යය clean.requireForce අසත්‍ය ලෙස සකසා නොමැති නම්, -f, -n හෝ -i ලබා නොදුනහොත් git clean ධාවනය කිරීම ප්‍රතික්ෂේප කරනු ඇත.

3. -i, - ක්‍රියාකාරී

කළ යුතු දේ පෙන්වන්න සහ අන්තර්ක්‍රියාකාරීව ලිපිගොනු පිරිසිදු කරන්න. විස්තර සඳහා “අන්තර්ක්‍රියාකාරී ප්‍රකාරය” බලන්න.

4. -n, --dry-run

ඇත්ත වශයෙන්ම කිසිවක් ඉවත් නොකරන්න, කළ යුතු දේ පෙන්වන්න.

5. -q, --quiet

නිශ්ශබ්ද වන්න, දෝෂ පමණක් වාර්තා කරන්න, නමුත් සාර්ථකව ඉවත් කරන ලද ගොනු නොවේ.

6. -e, --exclude =

.Gitignore (එක් ඩිරෙක්ටරියක් සඳහා) සහ $ GIT_DIR / info / බැහැර කිරීම් වල ඇති ඒවාට අමතරව, මෙම රටා නොසලකා හරින ලද නීති රීති මාලාවේ ඇති බව සලකන්න.

7. -x

.Gitignore (බහලුමකට) සහ $ GIT_DIR / info / බැහැර කිරීම් වලින් කියවන සම්මත නොසලකා හැරීමේ නීති භාවිතා නොකරන්න, නමුත් -e විකල්ප සමඟ ලබා දී ඇති නොසලකා හැරීමේ නීති තවමත් භාවිතා නොකරන්න. නිමැවුම් නිෂ්පාදන ඇතුළුව සියලුම නොකැඩූ ගොනු ඉවත් කිරීමට මෙය ඉඩ දෙයි. පිරිසිදු ගොඩනැඟිල්ලක් පරීක්ෂා කිරීම සඳහා නියම වැඩකරන නාමාවලියක් නිර්මාණය කිරීම සඳහා මෙය (සමහර විට git reset සමඟ ඒකාබද්ධව) භාවිතා කළ හැකිය.

8. -එක්ස්

Git විසින් නොසලකා හරින ලද ගොනු පමණක් ඉවත් කරන්න. මුල සිටම සියල්ල නැවත ගොඩනඟා ගැනීමට මෙය ප්‍රයෝජනවත් විය හැකි නමුත් අතින් සාදන ලද ලිපිගොනු තබා ගන්න.


මම හිතන්නේ ඔබට uggesteduggestion
අක්ෂර වින්‍යාසයක් ඇති

8

සාමාන්‍ය git cleanවිධානය මගේ සමඟ සොයා නොගත් ගොනු ඉවත් නොකරයි git version 2.9.0.windows.1.

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

7

පහත දැක්වෙන git අදහස් භාවිතා කිරීමෙන් අපට වර්තමාන git වැඩ කරන ගසෙන් දේශීය හඳුනා නොගත් ගොනු පහසුවෙන් ඉවත් කළ හැකිය.

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

උදාහරණයක්:

git reset --hard HEAD

සබැඳි:

  1. https://git-scm.com/docs/git-reset
  2. පෙර කැපවීමකට ආපසු යාමට 'git reset --hard HEAD' භාවිතා කරන්නේ කෙසේද?
  3. දුරස්ථ නිධිය HEAD මෙන් දේශීය නිධිය ශාඛාව නැවත සකසන්න
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

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

ක්‍රියා නොකරයි: සමහර ලිපිගොනු තබයි. git clean -ffdxවිසඳුම
ඉයුජින් ජී. පිලිපෝව්

7

Git නිධිය සහ සියලු උප මොඩියුල පුනරාවර්තනය කරන්න

පහත දැක්වෙන විධානය මඟින් වත්මන් git නිධිය සහ එහි සියලුම උප මොඩියුලයන් පුනරාවර්තනය වේ.

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

නිසැකවම මෙය ඉතා පරිස්සමින් භාවිතා කළ යුතුය
lacostenycoder

6
git clean -f

වත්මන් git වෙතින් ඉවත් නොකළ ගොනු ඉවත් කරයි

git clean -fd

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


5

ඔහ්-මගේ-zsh සමග zsh වන GIT ප්ලගිනය හරහා ඒ මහා යොමුවීම් සපයයි. ඒවා බාෂ් වලද භාවිතා කළ හැකිය.

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean හඳුනා නොගත් ලිපිගොනු වලට අමතරව හඳුනා නොගත් නාමාවලි ඉවත් කරයි .
  • gpristineදේශීය වෙනස්කම් නැවත සකස් කිරීම, හඳුනා නොගත් නාමාවලි, ඉවත් නොකළ ලිපිගොනු ඉවත් කිරීම. නිමැවුම් නිෂ්පාදන ඇතුළුව සියලුම නොකැඩූ ගොනු ඉවත් කිරීමට මෙය ඉඩ දෙයි. පිරිසිදු ගොඩනැගීමක් පරීක්ෂා කිරීම සඳහා නියම වැඩ කරන නාමාවලියක් නිර්මාණය කිරීම සඳහා මෙය (සමහර විට git reset සමඟ ඒකාබද්ධව) භාවිතා කළ හැකිය .

2
ඔබගේ ප්‍රතිපෝෂණයට ස්තූතියි, මගේ ප්‍රකාශය ව්‍යාකූල විය. උද්දීපනය කළ අන්වර්ථයන් ස්වයංක්‍රීයව ඕ-මයි-ස්ෂ් සමඟ එන බව මට පැවසීමට අවශ්‍ය විය. ඔවුන් පැහැදිලිවම වැඩ කරයි bash. එය පිළිබිඹු කිරීම සඳහා මම මගේ පිළිතුර සංස්කරණය කළෙමි.
සෙන්ලූල්ස්

4

මම git stashවිධානය භාවිතා කිරීමට කැමතියි , පසුව ඔබට ගබඩා කළ ලිපිගොනු සහ වෙනස්කම් ලබා ගත හැකිය. git cleanඑයද හොඳ විකල්පයක් වන නමුත් එය සම්පූර්ණයෙන්ම ඔබගේ අවශ්‍යතාවය මත රඳා පවතී. Git stash සහ git clean, 7.3 Git Tools - Stashing and Cleaning පිළිබඳ පැහැදිලි කිරීම මෙන්න

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.