මම ෆෝල්ඩරයක් zip කළත් .git උප ෆෝල්ඩරය බැහැර කරන්නේ කෙසේද?


222

මම ෆෝල්ඩරයකින් zip ගොනුවක් සෑදීමට උත්සාහ කරන .gitඅතර එහි ප්‍රති ing ලයක් ලෙස ලැබෙන zip ගොනුවෙන් උප ෆෝල්ඩරය බැහැර කිරීමට කැමැත්තෙමි .

මට සිප් කිරීමට අවශ්‍ය ( මව් බිට්වුලූෂන් යනුවෙන් හැඳින්වෙන ) මව් ෆෝල්ඩරය වෙත ගොස් මම කරන්නේ:

zip -r bitvolution.zip bitvolution -x ".git"

නමුත් එය .gitඋප ෆෝල්ඩරය බැහැර නොකරයි .

මම විවිධ සංයෝජන උත්සාහ කලා, -x .git*, -x \.git/*, -x .git/\*, -x \.git/\*. බැහැර කිරීමේ තර්කය සඳහා මම සම්පූර්ණ මාර්ගය භාවිතා කිරීමට උත්සාහ කළෙමි ... නමුත් එතැනට පැමිණියේ නැත.

Answers:


268

නිවැරදි ප්‍රකාශනය වන්නේ -x '*.git*', එබැවින් සම්පූර්ණ විධානය විය යුත්තේ:

zip -r bitvolution.zip ./bitvolution -x '*.git*'

Http://selfsolved.com/problems/zip-command-exclude-svn-director වෙතින් පැහැදිලි කිරීමක් :

නිවැරදි අභිප්‍රාය වන්නේ

zip -9 -r --exclude=*.svn*  foo.zip [directory-to-compress]


--exclude=*.DS_Store*කරදරකාරී මැක් ඕඑස් එක්ස් ඩිරෙක්ටරි ඩිස්ප්ලේ පාර-දත්ත ගොනු බැහැර කිරීමට ඔබට එකතු කළ හැකිය .

ප්‍රකාශනය සම්මත කර --excludeඇත්තේ සමස්ත මුල් සාපේක්ෂ නාමාවලි මාර්ගය මුල් නූල ලෙස සැසඳීමට භාවිතා කරන බව සැලකිල්ලට ගන්න. එබැවින් .svn/*තනිවම ක්‍රියා නොකරයි; ඉදිරිපස ඇති ආදේශක අක්‍ෂරය එය .svnනාමාවලි ගසෙහි ඕනෑම තැනක නාමාවලි වලට ගැලපෙන බව සහතික කරයි .


22
මට උපුටා දැක්වීම් වලින් zip --exclude '*.git*' -r directory.zip directoryzip --exclude \*.git\* -r directory.zip directory
ගෝලය එතීමට

6
යමක් යනුවෙන් හැඳින්වෙන වෙනත් ලිපිගොනු නැතිවීම ගැන ඔබ කනස්සල්ලට පත්ව සිටී නම්, ඔබටද භාවිතා කළ හැකිය --exclude /.git*.
එරින් අමතන්න

5
ZSH හි මට බැක්ස්ලෑෂ් එකක් එක් කිරීමට සිදු විය:-x \*.git\*
දිමිත්‍රිසන්ඩොලොව්

2
Zsh හි බැක්ස්ලෑෂ් සහ උපුටා දැක්වීම් සඳහා මා වඩාත් කැමති විකල්පය:noglob zip -r out.zip someFolder -x *someExcludedFolder*
සෙබස්තියන්

1
මේවායින් බොහොමයක් ඔබගේ .gitignoreලිපිගොනු නොසලකා හරින බව පෙනේ . ඒ '*/.git/*'වෙනුවට භාවිතා කිරීමට මම නිර්දේශ කරමි , එය අවසර දී ඇති ආකාරයට අඩු හෝ git archiveවෙනත් අය සඳහන් කර ඇති ප්‍රවේශය නිසා.
dsz

143

ඔබ Git හි ගබඩා කර ඇති ව්‍යාපෘතියක් zip කිරීමට උත්සාහ කරන්නේ නම්, git archiveවිධානය භාවිතා කරන්න . ප්‍රභව නාමාවලිය තුළ සිට:

git archive -o bitvolution.zip HEAD

HEADඑක්තරා අවස්ථාවක දී ව්‍යාපෘතිය සංරක්‍ෂණය කිරීම වෙනුවට ඔබට ඕනෑම කැපවීමක් හෝ ටැග් හැඳුනුම්පතක් භාවිතා කළ හැකිය .

ඔබට සෑම ගොනුවකටම උපසර්ගයක් (උදා: ඉහළ මට්ටමේ ෆෝල්ඩරයක්) එක් කිරීමට අවශ්‍ය නම්:

git archive -o bitvolution.zip --prefix=bitvolution/ HEAD

නිදසුනක් ලෙස, ඔබට සම්පීඩන මට්ටම 0 (සම්පීඩනයක් නැත) සහ 9 (උපරිම සම්පීඩනය) අතර වෙනස් කළ හැකිය

git archive -o bitvolution.zip -9 HEAD

වෙනත් විකල්ප සඳහා, උදව් පිටුව ( git help archive) බලන්න.


26
මෙයට git ෆෝල්ඩරය ඇතුළත් නොවනවා පමණක් නොව, gitignore ගොනුවේ ඇති ඕනෑම දෙයක් බැහැර කරනු ලැබේ. ඔයා සර්ට උඩු යටිකුරු කරන්න.
JoeMoe1984

1
මම කරන්න බලාපොරොත්තු වුණු දේ!
බජාර්ට්

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

මම හිතන්නේ ඇයි මෙය හොඳම පිළිතුර
නොවන්නේ

මට නම් මෙය අද දින විශාලතම TIL විය ...
ෂෝන් සිකෝරියා

30

මම බැක්ස්ලෑෂ් එකතු කළා:

zip -r bitvolution.zip bitvolution -x \*.git\*

බැක්ස්ලෑෂ් ගැන මෑන් පිටුව:

බැක්ස්ලෑෂ් මඟින් ෂෙල් ගොනු නාම ආදේශනය වළක්වයි, එවිට නම ගැලපීම සියලු ඩිරෙක්ටරි මට්ටම්වල සිප් මඟින් සිදු කරයි.


නාමාවලි බැහැර කිරීම සඳහා උබුන්ටු 14.04 හි ස්ලෑෂ් ෆෝක් සහිත තරු ලකුණු කිරීම
ඩිමිට්‍රි කේ

10

ඔබ මෙය කරන යන්ත්‍රයේ git ස්ථාපනය කර ඇති බව උපකල්පනය කිරීමෙන්, ඔබේ ලේඛනාගාරය නිර්මාණය කිරීම සඳහා ඔබට git භාවිතා කළ හැකිය.

git archive --format=zip HEAD -o bitvolution.zip

4

ඔබ zsh භාවිතා කරන්නේ නම්, විධානය මෙසේ විය යුතුය:

zip -r target_name.zip source_dir -x '/*.git/*'

ඔබ භාවිතා කරන්නේ නම් : zip -r target_name.zip source_dir -x /*.git/*. 'regex' නොමැතිව zip ධාවනය වීමට පෙර zsh ක්‍රියා කරයි. ඔබට දෝෂ පණිවිඩයක් ලැබෙනු ඇත:

zsh: no matches found: /*.git/*

ස්තූතියි! වින්ඩෝස් හි උබුන්ටු මත බාෂ් භාවිතා කිරීම මට වැඩ කළේ එයයි.
ඇඩ්‍රියානෝ මොනේචි

මෙම රටාව ක්‍රියා කරන්නේ කෙසේදැයි මට නොතේරුණි, නමුත් zsh හි මා වෙනුවෙන් වැඩ කළේය.
ලාංඡනය කරන්න

0

ඔබට සම්පූර්ණ ෆෝල්ඩරයක් නොසලකා හැරීමට අවශ්‍ය නම් පහත ආකෘතිය භාවිතා කරන්න.

උදාහරණයක් ලෙස, සෑම node_modulesෆෝල්ඩරයක්ම නොසලකා හැරීම , සෑම අන්ත ලක්ෂ්‍යයකම:

zip -r API.zip API/* -x */node_modules/*
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.