পাইথন প্রকল্পগুলির জন্য .gitignore ফাইল যুক্ত করার জন্য সেরা অনুশীলনগুলি? [বন্ধ]


209

আমি আমার কিছু ডিফল্ট সেটিংস সংগ্রহ করার চেষ্টা করছি এবং একটি জিনিস যা আমি বুঝতে পেরেছিলাম সেটির জন্য আমার কাছে স্ট্যান্ডার্ড নেই। Gitignore ফাইল। ভিজ্যুয়াল স্টুডিও প্রকল্পগুলির জন্য একটি দুর্দান্ত .gitignore দেখানোর একটি দুর্দান্ত থ্রেড রয়েছে , তবে পাইথন এবং সম্পর্কিত সরঞ্জামগুলির জন্য আমি বহু প্রস্তাবনা দেখতে পাই না (পাইজিটিকে, জ্যাঙ্গো)।

এখনও পর্যন্ত, আমি ...

*.pyc
*.pyo

... সংকলিত বস্তুর জন্য এবং ...

build/
dist/

... সেটআপলগুলি আউটপুট জন্য।

.Gitignore ফাইলগুলির জন্য কয়েকটি সেরা অনুশীলনগুলি কী কী এবং এই সেরা অনুশীলনগুলি সম্পর্কে আমি আরও কোথায় যেতে পারি?


16
এই প্রকল্পটির github.com/github/gitignore ঠিক এই প্রশ্নের উত্তর দেওয়ার জন্য সেট আপ করা হয়েছিল।
ম্যাট্রিক্সফ্রোগ

1
.. শুধু github.com/github/gitignore/blob/master/Python.gitignore যুক্ত করতে ভুলবেন না কারণ এটিও একটি অজগর প্রকল্প।
ফেবিও

1
মাত্র গিটিগনোর.ইও গিয়ে স্ট্যান্ডার্ড ফাইলটি পেতে পাইথন টাইপ করুন
ভানু সিনহা

উত্তর:


64

বিল্ডআউটটি ব্যবহার করার সময় আমি অনুসরণ করে আসছি.gitignore (পাশাপাশি *.pyoএবং *.pyc):

.installed.cfg
bin
develop-eggs
dist
downloads
eggs
parts
src/*.egg-info
lib
lib64

জ্যাকব কাপলান-মসকে ধন্যবাদ জানাই

আমি .svnযেখানে কাজ করি সেখানে বেশ কয়েকটি এসসিএম-এস ব্যবহার করার পরেও আমি ঝোঁক রাখি ।


35
আপনার গিট রেপোর মতো একই গাছে একটি এসএনএন রেপো রাখছেন !? কোন ধরণের দানব এ জাতীয় কাজ করবে?
দেনিথ

@Daenyth খিল খিল , ভাল সত্যিই না, কিন্তু আমি কিছু অবশেষ খুঁজে পেতে ঝোঁক .svnপ্রায় মিথ্যা ডিরেক্টরি যদি আমি (পুরনো উপাদান মধ্যে বিশেষভাবে) অন্য উৎস থেকে একটি উপাদান পেতে এবং আমি বেশ অলস তাই আমি মাঝে মাঝে পরিবর্তে SVN থেকে পণ্যদ্রব্য রফতানির চেক আউট করে কপি আছি । আমি একবারও দেখেছি যে কোনও লোক আসলে জিটিটিতে বামে .svn ডায়ার করছে। বোকা লোকদের সাথে কাজ করার সময় আপনি সমস্ত ধরণের অদ্ভুত জিনিসগুলিতে ছুটে যেতে পারেন।
লুভিক

1
ঠিক আছে আমি তাদের স্ট্যাকওভারফ্লোতে ঠেকানোর চেষ্টা করছি ...: পি
লুসিক

1
আমি বিল্ডআউটটি এখনও ব্যবহার করি নি, তবে সম্ভবত শীঘ্রই কোনও দিন প্রয়োজন হবে ... সুতরাং আমি তাদের তালিকায় রাখব। ধন্যবাদ!
ewall

2
আপনার সম্ভবত পৃথক প্রকল্পে নয় *.svnআপনার মধ্যে রাখা উচিত .global_gitignore
কৌলিকরা

293

গিথুব একটি দুর্দান্ত বয়লারপ্লেট আছে .gitignore

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]

# C extensions
*.so

# Distribution / packaging
bin/
build/
develop-eggs/
dist/
eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
.tox/
.coverage
.cache
nosetests.xml
coverage.xml

# Translations
*.mo

# Mr Developer
.mr.developer.cfg
.project
.pydevproject

# Rope
.ropeproject

# Django stuff:
*.log
*.pot

# Sphinx documentation
docs/_build/

1
কেন আমাদের * .mo ফাইল উপেক্ষা করা উচিত? শুধু কৌতূহল জন্য। এই gettext এর .po ফাইলগুলি আলাদাভাবে সার্ভারে সংকলিত হয়েছে?
একিন এরতাç

4
.mo ফাইলগুলি .po ফাইলগুলির মেশিন রিডেবল (বাইনারি) সংস্করণ হয় এবং এটি সর্বজনবিদিত হয় - বাইনারি ফাইলগুলিকে কোনও সংস্করণী সংগ্রহস্থলের বাইরে রাখাই অনেক ভাল you এবং .mo এর অর্থ হ'ল ভান্ডারগুলিতে নকল তথ্য রাখা,
ভিসিএস

5
কেন .ডিএসএস স্টোর?
ম্যাক্সোর

আমি সত্যিই কেন তারা আছে যেমন বিভ্রান্ত করছি .python-versionমধ্যে .gitignore: এখান github.com/github/gitignore/blob/master/Python.gitignore#L82
aceofbassgreg

16

স্থানীয়_সেটিং.পি , জ্যাঙ্গো প্রকল্পগুলির জন্য।

* all সমস্ত প্রকল্পের জন্য।


এটা বোধগম্য. সাধারণ কনফিগারেশনটি নির্দিষ্ট / স্থানীয় / ব্যক্তিগত থেকে পৃথক করার এই পদ্ধতিটি আমি পছন্দ করি।
ewall

কিভাবে কাজ করে? অর্থাত্, পরিবেশ কখন স্থানীয় এবং কখন উত্পাদন হয় তা জ্যাঙ্গো বা পাইথন কীভাবে জানতে পারে?
ম্যাডফিজিসিস্ট

13

বেশিরভাগ সাধারণ সামগ্রী জুড়ে থাকে -

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

রেফারেন্স: পাইথন .gitignore


এটি ইতিমধ্যে উপরে উল্লিখিত হয়!
ইমমানুয়েল

@ এমানুয়েল অন্যান্য উত্তরে যা উল্লেখ করা হয়েছে তা জেনেরিক বয়লারপ্লেট নয়, এতে অনেকগুলি অপ্রয়োজনীয় জিনিস রয়েছে। এখানে উল্লিখিত একটি জেনারো যে কোনও জ্যাঙ্গো / পাইথনের জন্য।
অনি মেনন

সত্যই, এর জন্য দুঃখিত ... দুর্ভাগ্যক্রমে আমি উত্তরটি সম্পাদনা না করা পর্যন্ত আমার ডাউনটোট বাতিল করতে পারি না ...
এমমানুয়েল

6

একটি প্রশ্ন হ'ল আপনি যদি নিজের প্রকল্পগুলির অবনমিতদের জন্যও গিট ব্যবহার করতে চান। যদি আপনি সম্ভবত আপনার স্থানীয় স্ক্লাইট ফাইলটি সংগ্রহস্থল থেকে বাদ দিতে চান তবে এটি সম্ভবত ফাইল আপলোডগুলিতে প্রযোজ্য (বেশিরভাগ আপনার মিডিয়া ফোল্ডারে)। (আমি এখন জাঙ্গো নিয়ে কথা বলছি, যেহেতু আপনার প্রশ্নটিও জ্যাঙ্গোর সাথে ট্যাগ করা আছে)


বুঝতে পারছিল না। যেহেতু জাজানো কোনও ফাইলের নাম এবং ডিরেক্টরি কাঠামোর বেশিরভাগ প্রয়োগ করে না, তাই এগুলি আগে থেকেই নির্দিষ্ট করে নেওয়া শক্ত। তবে আমি কমপক্ষে এটির একটি নোট তৈরি করতে পারি যাতে আমার মনে হয় আমি যখন নতুন প্রকল্প তৈরি করি।
ewall

ভাল অনুমান করুন আপনার মিডিয়া ডির যেমন আপনার সমস্ত ব্যবহারকারীর ফাইলগুলি ওয়ান ফোল্ডারে আপলোড করা সাধারণভাবে হওয়া উচিত make media/uploads, যাতে আপনি একটি নিয়ম দিয়ে তাদের সমস্ত 'উপেক্ষা' করতে পারেন ...
বার্নহার্ড ভালান্ট

4

এখানে আরও কিছু ফাইল রয়েছে যা সেটআপলগুলি রেখে যেতে পারে:

MANIFEST
*.egg-info

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