আমি কীভাবে কোনও ফোল্ডারে জিপ আপ করব তবে .git সাবফোল্ডারটি বাদ দিই


194

আমি একটি ফোল্ডার থেকে একটি জিপ ফাইল তৈরি করার চেষ্টা করছি এবং আমি .gitফলাফল জিপ ফাইল থেকে উপ-ফোল্ডারটি বাদ দিতে চাই ।

আমি যে জিপ করতে চাই তার একটি মূল ফোল্ডারে গিয়েছি ( বিটভলিউশন বলা হয় ) এবং আমি করছি:

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

তবে এটি .gitসাব-ফোল্ডারটি বাদ দেয় না ।

আমি বিভিন্ন সমন্বয় চেষ্টা করেছি, , -x .git*, -x \.git/*, ।-x .git/\* -x \.git/\*আমি যুক্তিটি বাদ দেওয়ার জন্যও পুরো পথটি ব্যবহার করার চেষ্টা করেছি ... তবে সেখানে পৌঁছায়নি।

উত্তর:


232

সঠিক এক্সপ্রেশনটি হ'ল -x *.git*, সুতরাং সম্পূর্ণ কমান্ডটি হওয়া উচিত:

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

Http://selfsolve.com/problems/zip-command-exclude-svn-director থেকে একটি ব্যাখ্যা :

সঠিক জ্বলন

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


--exclude=*.DS_Store*বিরক্তিকর ম্যাক ওএস এক্স ডিরেক্টরি মেটাডেটা ফাইলগুলি বাদ দেওয়ার জন্য আপনি একটি যুক্ত করতে পারেন ।

লক্ষ্য করুন যে এতে প্রকাশিত অভিব্যক্তিটি --excludeসম্পূর্ণ আসল আপেক্ষিক ডিরেক্টরি পথটিকে বিপরীতে মেলে মূল স্ট্রিং হিসাবে ব্যবহার করছে। সুতরাং .svn/*নিজে থেকে কাজ করে না; সামনের ওয়াইল্ডকার্ড চরিত্রটি নিশ্চিত করে যে এটি .svnডিরেক্টরি গাছের যে কোনও জায়গায় ডিরেক্টরিগুলির সাথে মেলে ।


20
আমাকে উদ্ধৃতিতে গ্লোব জড়িয়ে রাখতে হয়েছিল zip --exclude '*.git*' -r directory.zip directoryবা ব্যাকস্ল্যাশগুলি সহ নক্ষত্রগুলি থেকে বাঁচতে হয়েছিল, যেমন বাzip --exclude \*.git\* -r directory.zip directory
দিমিত্রি মিনকভস্কি

6
যদি আপনি যথাবিধ কিছু নামে পরিচিত অন্য ফাইলগুলি হারাতে উদ্বিগ্ন হন তবে আপনি এটিও ব্যবহার করতে পারেন --exclude /.git*
এরিন কল

4
জেডএসএইচ-এ আমাকে একটি ব্যাকস্ল্যাশ যুক্ত করতে হয়েছিল:-x \*.git\*
দিমিত্রিসান্ডালভ

2
Zsh মধ্যে ব্যাকস্ল্যাশ এবং কোট আমার পছন্দের বিকল্প:noglob zip -r out.zip someFolder -x *someExcludedFolder*
সেবাস্টিয়ান

এটি কীভাবে তার সাথে ব্যবহার করবেন? এটি টার কমান্ড দিয়ে কাজ করছে না।
আরএন কুশওয়াহা

123

আপনি যদি গিটে সঞ্চিত কোনও প্রকল্পটি জিপ আপ করার চেষ্টা করছেন, 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) দেখুন।


25
এটি কেবল গিট ফোল্ডারকেই অন্তর্ভুক্ত করবে না তবে গিটিগনোর ফাইলের মধ্যে থাকা কিছুও বাদ দেওয়া হবে। আপনি স্যার একটি upvote পেতে।
জোমো 1984

1
আমি কি করতে চেয়েছিলাম!
বাজতে

আমি পার্টিতে দেরি করে ফেলেছি তবে এটা আমাকে পুরোপুরি উড়িয়ে দিয়েছে। দুর্দান্ত উত্তর!
টম

আমি ভাবছি কেন এটি সেরা উত্তর নয়
ন্যাবট্রন

আমার জন্য এটি আজকের সবচেয়ে বড় টিআইএল ...
শন সিকোরিয়া

27

আমি ব্যাকস্ল্যাশ যুক্ত করেছি:

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

ব্যাকস্ল্যাশ সম্পর্কে ম্যান পৃষ্ঠা

ব্যাকস্ল্যাশ শেল ফাইলের নামের বিকল্পটি এড়িয়ে চলে, যাতে নামের তালিকাটি সমস্ত ডিরেক্টরি স্তরে জিপ দ্বারা সম্পাদিত হয়।


ডিরেক্টরিগুলি বাদ দেওয়ার জন্য উবুন্টু 14.04 এ আমার জন্য স্ল্যাশ কাঁটাচামচ নিয়ে ঝুঁকিপূর্ণ প্রস্তুতি
দিমিত্রি কে

6

ধরে নিই যে আপনি যে মেশিনটি করছেন এটিতে আপনি গিট ইনস্টল করেছেন, আপনি নিজের সংরক্ষণাগারটি তৈরি করতে নিজেই গিট ব্যবহার করতে পারেন।

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

2

আপনি zsh ব্যবহার করে থাকলে কমান্ডটি দেখতে হবে:

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

আপনি ব্যবহার করুন: zip -r target_name.zip source_dir -x /*.git/*। 'রেজেক্স' ছাড়াই জিপ চালানোর আগে zsh প্রক্রিয়া করবে। আপনি ত্রুটি বার্তা পাবেন:

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

ধন্যবাদ! উইন্ডোতে উবুন্টুতে ব্যাশ ব্যবহার করার জন্য এটিই আমার পক্ষে কাজ করেছিল।
অ্যাড্রিয়ানো মোনচি

এই প্যাটার্নটি কীভাবে কাজ করে তা আমি বুঝতে পারি নি, তবে zsh এ আমার জন্য কাজ করে।
ইনজাইন করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.