ورژن کنترل | Version Control

جنگو

سلام

به آخرین فصل خوش آمدید. در این فصل می خواهیم برنامۀ خود را روی سرور منتشر کنی. همچنین قصد داریم یک سرور ایمیل و گواهینامۀ https را برای سرورمان پیکربندی کنیم.

این پروژه قبلا در آدرس djangoboards.com آنلاین شده و می توانید به آن مراجعه کنید.

کنترل ورژن در مهندسی نرم افزار یک مفهوم اساسی است. به خصوص در زمانی که به صورت تیمی و هم زمان روی یک پروژه کار می کنید و ممکن است هر تیم یا هر عضو وظیفۀ توسعۀ بخشی از پروژه را به صورت موازی بر عهده داشته باشد.

فرقی بین یک توسعه دهنده یا چند توسعه دهنده وجود نداشته و هر پروژه باید دارای ورژن کنترل باشد.

برای این کار سیستم ها و ابزارهای بسیار زیادی وجود دارد که مشهورترین آن ها گیت هاب است. اگر با آن آشنا نیستید آموزش های بسیار فراوانی در این حوزه وجود دارد که می توانید به آن مراجعه کنید. البته همانطور که می دانید اخیراً (اوایل سال 99) گیت ها هم ما (ایران) را در لیست سیاه قرار داده (البته فعلاً برای ریپازیتوری های خصوصی) و بنابراین خیلی از ایرانی ها در حال مهاجرت به گیت لب هستند. اما چون vitor عزیز در این آموزش ها با گیت هاب جلو رفته من هم روی همان جلو می روم.

نکته جالب در خصوص Git آن است که گیت فراتر از یک سیستم کنترل ورژن عمل می کند. گیت اکوسیستمی است از ابزارها و سرویس های وسیع برای توسعه دهندگان مثل سیستم یکپارچگی، توسعه، بازبینی کد، کنترل کیفیت کدها و مدیریت پروژه. اگر شما روی سیستم تان گیت ندارید می توانید از لینک https://git-scm.com/downloads آن را دانلود کنید.


نصب اولیه

اولین کار تنظیم هویت خودتان است.

git config --global user.name "Vitor Freitas"
git config --global user.email vitor@simpleisbetterthancomplex.com

در مسیر اصلی پروژه (همانجایی که فایل manage.py قرار دارد.) مخزن و ریپازیتوری گیت را مقداردهی می کنیم.

git init
Initialized empty Git repository in /Users/tamadon/Development/Libogram/.git/

وضعیت مخزن را بررسی کنید.

git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

  accounts/
  boards/
  manage.py
  myproject/
  requirements.txt
  static/
  templates/

nothing added to commit but untracked files present (use "git add" to track)

قبل از اضافه کردن فایل های سروی، یک فایل جدید با نام gitignore در مسیر اصلی پروژه ایجاد کن. این فایل خاص به ما اجازه می دهد تا ریپازیتوری و مخزن را به صورت پاکیزه و بدون فایل های غیرضروری یا محرمانه مثل فایل های کش یا فایل های لاگ نگه داریم.

می توانید نمونۀ اصلی از این فایل را از آدرس generic .gitignore file for Python projects دانلود کنید.

مطمئن شوید که این فایل را از Python.gitignore به gitignore. تغییر نام داده باشید. (توجه کنید که علامت نقطه قبل از نام فایل خیلی مهم است.) برای مثال می توانید به فایل gitignore. بگویید که فایل های دیتابیس SQLite را نادیده بگیرد.

.gitignore

__pycache__/
*.py[cod]
.env
venv/


# SQLite database files

*.sqlite3

حالا فایل را به ریپازیتوری اضافه می کنیم.

git add .

در فرمان بالا به علامت نقطه توجه کنید. دستور بالا به گیت می گوید که تمام فایل های موجود در دایرکتوری جاری را اضافه کن.

حالا اولین فرمان را صادر می کنیم.

git commit -m "Initial commit"

همیشه برای کارهایی که انجام می دهی یک کامنت هرچند کوتاه بنویس تا بعداً معلوم باشد که کدام بخش ها را تغییر داده ای.


مخزن و ریپازیتوری راه دور

حالا می خواهیم گیت هاب را به عنوان مخزن راه دور نصب کنیم.

در ابتدا یک حساب کاربری رایگان در گیت هاب ایجاد می کنیم. سپس آدرس ایمیل را تأیید می کنیم. بعد از آن قادر خواهی بود تا یک مخزن عمومی یا Public Repository بسازی.

برای شروع یک نام برای مخزن خود انتخاب کن(Repository name). ضمناً تیک مقداردهی اولیه README را بردار و همینطور  gitignore. یا لایسنس را هم اضافه نمی کنیم. مطمئن باش که ریپازیتوری را به صورت خالی ایجاد کرده باشی.

بعد از ایجاد ریپازیتوری تصویر مشابه زیر باید قابل نمایش باشد.

حالا می خواهیم آن را به عنوان ریپازیتوری راه دور تنظیم کنیم.

git remote add origin git@github.com:sibtc/django-boards.git

حالا باید کدهای خود را به سرور راه دور که همان ریپازیتوری یا مخزن گیت هاب است ارسال کنیم.

git push origin master

Counting objects: 84, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (81/81), done.
Writing objects: 100% (84/84), 319.70 KiB | 0 bytes/s, done.
Total 84 (delta 10), reused 0 (delta 0)
remote: Resolving deltas: 100% (10/10), done.
To git@github.com:sibtc/django-boards.git
 * [new branch]      master -> master

من برای شروع کدهای اول را به گیت هاب ارسال کردم که می توانید آن را روی اکانت https://github.com/sibtc/django-beginners-guide  ببینید.

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی:

مطلب قبلی:

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
پیکربندی گواهینامۀ https

سلام حالا می خواهیم برنامۀ خودمان را با گواهینامۀ https امن کنیم. ساده ترین کار برای انجام آن Let’s Encrypt است. قبل از Let’s Encrypt هرگز تنظیمات https به این راحتی نبوده و مهمتر اینکه اینکار کاملاً رایگان است. آن ها راه حلی به نام certbot را ارائه داده اند …

جنگو
پیکربندی سرویس ایمیل

سلام یکی از بهتر سرویس دهنده های ایمیل Mailgun با قابلیت ۱۲ هزار ایمیل رایگان در ماه است. به صورت رایگان ثبت نام کنید. برای اینکار باید آن را با سرویس دهندۀ دامین خود تنظیم کنید که در این آموزش از tamadon.org استفاده شده است. حالا اولین رکورد DNS را …

جنگو
پیکربندی NGINX

سلام کار بعدی که قرار است انجام شود؛ تنظیمان Nginx به شکلی است که پاسخگویی و سرویس دهی مربوط به فایل های استاتیک را خود انجام دهد و سایر درخواست ها را به Gunicorn بفرستد. یک فایل پیکربندی با نام boards را درون /etc/nginx/sites-available/ و با محتوای زیر اضافه می …

هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.