গিট সংগ্রহস্থলগুলিতে .pyc ফাইলগুলি উপেক্ষা করুন


107

আমি কীভাবে .pycফাইলগুলিকে উপেক্ষা করতে পারি ?

আমি .gitignoreএটিতে রাখলে কাজ হয় না। আমার উচিত তাদের যাতে ট্রেড করা যায় না এবং কমিটের জন্য পরীক্ষা করা হয় না।


4
.gitignore কাজ করা উচিত। এই সমস্যাটি সমাধানের চেষ্টা করার জন্য আপনি .gitignore এ যে রেখাগুলি রেখেছেন তার একটি অনুলিপি সরবরাহ করতে পারেন?
আল রিদ্দোচ

উত্তর:


41

এটি ভিতরে রাখুন .gitignore। তবে gitignore(5)ম্যান পৃষ্ঠা থেকে:

  ·   If the pattern does not contain a slash /, git treats it as a shell
       glob pattern and checks for a match against the pathname relative
       to the location of the .gitignore file (relative to the toplevel of
       the work tree if not from a .gitignore file).

  ·   Otherwise, git treats the pattern as a shell glob suitable for
       consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in
       the pattern will not match a / in the pathname. For example,
       "Documentation/*.html" matches "Documentation/git.html" but not
       "Documentation/ppc/ppc.html" or
       "tools/perf/Documentation/perf.html".

সুতরাং, হয় যথাযথ *.pycপ্রবেশের সম্পূর্ণ পথটি নির্দিষ্ট করুন , অথবা এটি .gitignoreকোনও সংগ্রহস্থল থেকে অন্তর্ভুক্ত ডিরেক্টরি থেকে অন্তর্ভুক্ত ডিরেক্টরিগুলির একটি ফাইলের মধ্যে রাখুন।


6
অন্য কারও বিভ্রান্ত না হওয়ার জন্য, ইগনাসিওর ম্যান পেজের ব্যাখ্যাটি ভুল। আপনাকে একই ডিরেক্টরিতে * .pyc লাগানোর দরকার নেই, এটি প্যারেন্ট ডিরেক্টরিতে (বা দাদা-পিতা, ইত্যাদি) রাখার জন্য যথেষ্ট।
গডস্মিথ

@ গুডস্মিথ: সংশোধন হয়েছে।
ইগনাসিও ওয়াজকেজ-আব্রামস

241

আপনার সাথে একটি লাইন যুক্ত করা উচিত:

*.pyc 

থেকে .gitignoreআপনার Git সংগ্রহস্থলের ট্রি রুট ফোল্ডারে ফাইল ডান সংগ্রহস্থলের আরম্ভের পরে।

যেমন র‌্যালফিথিনেঞ্জা বলেছিল, আপনি যদি আগেই এটি করতে ভুলে গিয়েছিলেন তবে আপনি যদি কেবলমাত্র .gitignoreফাইলটিতে লাইনটি যুক্ত করেন , সমস্ত প্রতিশ্রুতিবদ্ধ .pycফাইলগুলি এখনও ট্র্যাক করা হবে, সুতরাং আপনার সেগুলি সংগ্রহস্থল থেকে সরিয়ে ফেলতে হবে।

আপনি যদি লিনাক্স সিস্টেমে থাকেন (বা একটি ম্যাকোএসএক্সের মতো "পিতা-মাতা এবং পুত্র"), আপনি খুব দ্রুত এই এক লাইন কমান্ডের সাহায্যে এটি করতে পারেন যা আপনার সংগ্রহস্থলের মূল থেকে কার্যকর করা উচিত:

find . -name "*.pyc" -exec git rm -f "{}" \;

এর ঠিক অর্থ:

আমি বর্তমানে যে ডিরেক্টরিটি করছি সেখান থেকে শুরু করে, সমস্ত ফাইল সন্ধান করুন যার নামটি এক্সটেনশনের সাথে শেষ হয় .pycএবং ফাইলের নাম কমান্ডে প্রেরণ করুনgit rm -f

*.pycগিট থেকে ফাইলগুলি ট্র্যাক করা ফাইল হিসাবে মুছে ফেলার পরে , এই পরিবর্তনটি সংগ্রহস্থলীতে প্রতিশ্রুতিবদ্ধ করুন এবং তারপরে আপনি শেষ পর্যন্ত ফাইলটিতে *.pycলাইন যুক্ত করতে পারেন .gitignore

( http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ থেকে অভিযোজিত )


3
বিকল্পভাবে, গিট থেকে এবং আপনার স্থানীয় মেশিন থেকে কেবল ফাইলগুলি সরাতে আপনি কেবল git rm --cached *.pycশীর্ষ স্তরের ডিরেক্টরি থেকে করতে পারেন । এখান
অনুপম

আমার কাছে এটি বিদ্যমান আছে তবে আপনি একবারে পিপিসি ফাইলগুলি গিট দ্বারা ট্র্যাক করার পরে প্রতিশ্রুতি দেওয়ার ক্ষেত্রে প্রথমে সেগুলি মুছে ফেলা এবং প্রতিশ্রুতিবদ্ধ করা উচিত
মাহমুদ হবুবাতি

84

আপনি সম্ভবত নির্বাণ আগে সংগ্রহস্থলের তাদের যোগ করেছেন *.pycমধ্যে .gitignore
প্রথমে সেগুলি সংগ্রহস্থল থেকে সরান।


3

আমি একটি পূর্ববর্তী পোস্টের বাক্যটি ব্যবহার করার চেষ্টা করি এবং পুনরাবৃত্তির সাথে কাজ করি না, তারপরে কিছু সহায়তা পড়ুন এবং এই লাইনটি পান:

find . -name "*.pyc" -exec git rm -f "{}" \;

পিডি গিট ক্লিন বজায় রাখতে .gitignore ফাইলে * .pyc যুক্ত করা প্রয়োজন

echo "*.pyc" >> .gitignore

উপভোগ করুন।


0

উত্তরের জন্য ধন্যবাদ @ আমেরিকো

দ্রষ্টব্য আপনি যদি ভার্চুয়ালভ ব্যবহার করছেন তবে আপনি .pycবর্তমানে যে ডিরেক্টরিটিতে রয়েছেন তার মধ্যে আরও বেশ কয়েকটি ফাইল থাকবে যা তার ফাইন্ড কমান্ড দ্বারা ক্যাপচার করা হবে।

উদাহরণ স্বরূপ:

./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc

আমি মনে করি এটি সমস্ত ফাইল সরিয়ে ফেলা নিষিদ্ধ, তবে আপনি যদি কেবলমাত্র .pycআপনার মূল ডিরেক্টরিতে থাকা ফাইলগুলি সরাতে চান তবে ঠিক করুন

find "*.pyc" -exec git rm -f "{}" \;

এটি app.pycগিট সংগ্রহস্থল থেকে কেবল ফাইলটি সরিয়ে ফেলবে ।

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