مقدمه:
توی پست قبلی (پست قبلی) من اومدم یه توضیحاتی راجعبه ترجمه کتاب
Git Essentials: Developer's Guide to Git
دادم و قراره که این کتاب رو هر فصلش رو که ترجمه میکنم اینجا منتشرش کنم. اگه میخوای بدونی کتابش چه و چه سر فصل هایی داره و یکم منو بشناسی ببینی قراره چی کار کنیم اینا چیزایی هستش که توی پست قبلی بهش اشاره کردم میتونی یه نگاهی به پست قبلی بندازی :)
📚 اگه میخوای فایل PDF کتاب رو داشته باشی خودت بخونی میتونی از اینجا داشته باشیش.
فصل سوم - Getting Started with Git
حالا وقتشه که اولین قدمهامون رو در استفاده از گیت برداریم. اول از همه، گیت رو روی سیستمعامل مورد نظر خودتون (ویندوز، مک یا لینوکس) نصب میکنیم. بعدش، گیت رو با یک سری تنظیمات اولیه، مثل مشخص کردن نام کاربری، تنظیم میکنیم تا نیازی نباشه هر بار که نیاز به تأیید هویت داریم، دوباره اطلاعات ورود رو تایپ کنیم. و در نهایت، یک فایل جدید میسازیم و اون رو به مخزن خودمون متعهد (commit) میکنیم!
نصب گیت
اول از همه، بیاید گیت رو روی کامپیوترمون نصب کنیم. سه بخش بعدی به ترتیب توضیح میدهند که چطور گیت رو روی ویندوز، مک اواس و لینوکس نصب کنیم. شما میتونید مستقیماً به بخش مربوط به سیستمعامل مورد علاقتون بپرید.
نکته: نسخهای که در این کتاب استفاده شده، نسخهی 2.30.0 گیت هست که در تاریخ ۲۸ دسامبر ۲۰۲۰ منتشر شده. هر زمان که نسخههای مهم جدیدی از این ابزار منتشر بشه، ما هم کتاب رو بهروزرسانی خواهیم کرد.
ویندوز
برای نصب گیت روی ویندوز، باید به صفحه دانلود وبسایت رسمی git-scm برویم. با توجه به سیستم خودتان، میتوانید فایل نصبی قابلحمل (portable) یا عادی را انتخاب کنید. ما از نسخه عادی فایل نصبی استفاده میکنیم. پس از دانلود، فایل exe را اجرا میکنیم. سپس، یک راهنمای نصب به صورت مرحله به مرحله ما را همراهی میکند. ما اینجا از گزینههای پیشفرض استفاده میکنیم.
بعد از اتمام نصب، گیت باید روی کامپیوتر شما نصب شده باشد. حالا، با استفاده از Command Prompt یا برنامه Git Bash میتوانید دستور گیت را با فلگ –version اجرا کنید تا نسخه نصبشده را بررسی کنید:
$ git --version
باید خروجیای مثل این داشته باشید:
$ git version 2.30.0.windows.1
ممکن است نسخهی نصبشده شما متفاوت باشد، بسته به زمانی که این کتاب را میخوانید و آخرین نسخه پایدار موجود. اگر به کار با Command Prompt عادت دارید، میتوانید به راحتی از آن برای کار با گیت استفاده کنید. اما اگر به محیط bash عادت دارید، مثلاً در لینوکس کار میکنید، شاید استفاده از برنامه Git Bash برایتان راحتتر باشد، چون به شما امکان میدهد اکثر دستورات استاندارد یونیکس که به صورت پیشفرض در ویندوز وجود ندارند، استفاده کنید.
مک اواس
برای نصب گیت روی مک اواس چندین روش وجود داره. اولین روش استفاده از Homebrew هست. اگر قبلاً نصب نشده، میتونیم اون رو نصب کنیم و بعد، دستور زیر رو در ترمینال اجرا کنیم:
$ brew install git
روش دیگه اینه که از نصبکننده (installer) ارائهشده توسط Tim Harper استفاده کنیم. فقط کافیه اون رو دانلود کنیم و با تنظیمات پیشفرض نصب کنیم. بعد از نصب، برای بررسی نسخه نصبشده، این دستور رو اجرا کنید:
$ git --version
باید خروجیای شبیه به این داشته باشید:
$ git version 2.30.0
لینوکس
نصب گیت روی لینوکس واقعاً بستگی به توزیع شما و مدیر بسته مربوط به اون داره. اینجا ما یک توزیع مبتنی بر دبیان رو در نظر میگیریم، بنابراین از ابزار خط فرمان `apt-get` استفاده میکنیم:
$ sudo apt-get install git
بعد از نصب، میتونیم دوباره دستور آشنای زیر رو اجرا کنیم تا نسخهی نصبشده رو بررسی کنیم:
$ git --version
باید خروجیای شبیه به این داشته باشید:
$ git version 2.30.0
تنظیمات اولیه
حالا که گیت رو نصب کردیم، میتونیم استفاده ازش رو شروع کنیم… تقریباً! بهتره که قبلش یک نام کاربری و ایمیل برای گیت تنظیم کنیم.
برای این کار، یک ترمینال باز کنید و این دو دستور رو اجرا کنید:
$ git config --global user.name Francois
$ git config --global user.email francois.dupire@nerthusconsulting.be
چی شد اینجا؟
هر دو دستور با کلمه کلیدی git شروع میشوند که خیلی معمول است. شما همه دستورات گیت رو با همین کلمه کلیدی توی این کتاب اجرا میکنید. بعدش، عملیات config رو مشخص کردیم.
همونطور که از اسمش پیداست، به گیت گفتیم که میخواهیم تنظیمات رو دستکاری کنیم. این رو هم باید بدونید که گیت دو نوع فایل تنظیمات داره: محلی (local) و سراسری (global).
فایل تنظیمات محلی در پروژهای (مخزنی) که با اون کار میکنید، قرار داره. این تنظیمات سراسری رو نادیده میگیرن و معمولاً زمانی استفاده میشن که بخواید تنظیماتی خاص فقط برای یک پروژه انجام بدید. به طور پیشفرض، همه تغییرات تنظیمات که با git config انجام میدید، محلی هستن. این فایل در پوشه .git پروژه شما قرار داره و میتونید بهش از طریق .git/config دسترسی داشته باشید. ما در مورد این پوشه وقتی شروع به کار روی یک پروژه کردیم، صحبت خواهیم کرد.
برای اعمال تغییرات به تنظیمات سراسری، باید صراحتاً از فلگ --global استفاده کنید. این فایل خارج از پروژههایتون قرار داره، معمولاً در مسیر ~/.gitconfig روی لینوکس، $HOME/.gitconfig روی مک اواس، و C:/Users/User/.gitconfig روی ویندوز.
مقادیر موجود در این فایل تنظیمات برای تمام مخازن/پروژههای گیت که در حال پیگیری هستید، اعمال میشوند، مگر این که توسط یک فایل محلی در یک مخزن/پروژه خاص نادیده گرفته بشن.
هر دو فایل، جفتهای کلید-مقدار تنظیمات رو میپذیرند. مثلاً ما در دستور اول کلید user.name رو به francois تنظیم کردیم. بعدش user.email رو به francois.dupire@nerthusconsulting.be تنظیم کردیم.
اگر در هر زمانی بخواید بررسی کنید که کدام تنظیمات به یک پروژه خاص اعمال شدهاند - در حالی که در پوشه اون پروژه هستید، میتونید دستور زیر رو اجرا کنید:
$ git config --list
این دستور تمام تنظیماتی که در حال حاضر به پروژه اعمال شدهاند، شامل تنظیمات سراسری و محلی رو لیست میکنه. این خروجی میتونه چیزی شبیه به این باشه:
1. core.autocrlf=true
2. core.fscache=true
3. color.diff=auto
4. color.status=auto
5. color.branch=auto
6. color.interactive=true
7. help.format=html
8. http.sslcainfo=[PATH]
9. diff.astextplain.textconv=astextplain
10. rebase.autosquash=true
11. credential.helper=manager
12. filter.lfs.clean=git-lfs clean -- %f
13. filter.lfs.smudge=git-lfs smudge -- %f
14. filter.lfs.process=git-lfs filter-process
15. filter.lfs.required=true
16. user.name=francois
17. user.email=francois.dupire@nerthusconsulting.be
18. core.repositoryformatversion=0
19. core.filemode=false
20. core.bare=false
21. core.logallrefupdates=true
22. core.symlinks=false
23. core.ignorecase=true
24. remote.origin.url=[REMOTE ORIGIN URL]
25. remote.origin.fetch=+refs/heads/*:refs/remotes/orig\
26. in/*
27. branch.master.remote=origin
28. branch.master.merge=refs/heads/master
اما مشخص نیست که هر کدام از این تنظیمات از کدام فایل تنظیمات آمدهاند. میدانیم که user.name و user.email را در فایل تنظیمات سراسری تنظیم کردهایم، ولی بقیه موارد مبهم هستند.
اگر بخواهید بدانید که این تنظیمات از کجا خوانده میشوند، و شاید برخی را تغییر دهید، میتوانید از فلگ
--show-origin استفاده کنید
$ git config --list --show-origin
این دستور حالا همچنین محل فایل تنظیماتی که این تنظیمات را به وجود آورده، نشان میدهد:
عالی! حالا میدانیم کدام سطح تنظیمات بر گزینههای ما تأثیر میگذارد، اگر نیاز به تغییر آنها در هر زمانی داشته باشیم.
سلام، گیت!
بالاخره آمادهایم! بیایید این کار را انجام دهیم و معروفترین “Hello World!” یا بهتر بگوییم “Hello, Git!” را اجرا کنیم! یک مخزن (repository) ایجاد میکنیم و تغییراتی را به آن اعمال میکنیم.
اول از همه، یک دایرکتوری ایجاد میکنیم که تبدیل به مخزن ما خواهد شد و به آن دایرکتوری میرویم:
$ mkdir getting-started-with-git
$ cd getting-started-with-git
و حالا، اولین مخزن گیت خود را راهاندازی میکنیم:
$ git init
این دستور خروجی زیر را تولید میکند:
Initialized empty Git repository in /home/francois/getting-started-with-git/.git/
ما یک مخزن گیت خالی راهاندازی کردهایم. حالا دایرکتوری ما یک دایرکتوری دیگر به نام .git دارد. این دایرکتوری شامل تمام دادههای متا است که برای پیگیری پروژهتان و انجام کنترل نسخه لازم است. دقیقاً همین دایرکتوری شامل فایل تنظیمات برای پروژه شما و همچنین تاریخچه تمام فایلها و تغییرات متعهد شده است.
به طور پیشفرض، شامل موارد زیر است:
فایل تنظیمات شامل گزینههای پیکربندی است. فایل توضیحات شامل توضیحات مربوط به مخزن/پروژه برای یک صفحه وب مربوط به پروژه شما است. فایل HEAD شامل مرجع به شاخه (branch) فعلی است که روی آن قرار دارید. از آنجایی که ممکن است بدون دانش بیشتر درباره شاخهها و نحوه عملکردشان کمی گیجکننده باشد، فعلاً روی این فایل تمرکز نمیکنیم و به فصول بعدی واگذار میکنیم.
برخی از شبیهسازهای ترمینال همچنین ممکن است کلمه master را در پرانتز کنار مسیر فعلی نمایش دهند. master نام پیشفرض شاخه است. دوباره، ما زمان کافی برای صحبت درباره شاخهها داریم، بنابراین فعلاً زیاد روی آن تمرکز نمیکنیم.
خب، کمی ناامیدکننده است، هنوز نتوانستهایم بگوییم “سلام”. بیایید حالا این کار را انجام دهیم. اول، یک فایل hello.txt با جمله “Hello, Git!” ایجاد میکنیم:
echo "Hello, Git!" > hello.txt
حالا این دستورات رو اجرا میکنیم:
$ git add hello.txt
$ git commit -m "Initial commit: sayin' hello"
این باید خروجیای شبیه به این داشته باشه:
[master (root-commit) 00ccc8c] Initial commit: sayin' hello
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
این یعنی فایل hello.txt با موفقیت به مخزن اضافه شده و اولین تغییر (commit) ما انجام شده است. ما با موفقیت جمله “Hello, Git!” رو وارد مخزن کردیم!
همین بود! اولین تغییر ما که شامل فایل hello.txt هست ثبت شد! ما یک فایل ایجاد کردیم، اون رو به منطقهی موقت (staging area) اضافه کردیم و این تغییر رو در مخزن محلی ثبت (commit) کردیم. این کار شامل دستورات و اصطلاحات زیادی بود که شاید آشنایی کامل باهاشون نداشته باشید.
در فصل بعدی به طور دقیقتری به این دستورات و اصطلاحات نگاه میکنیم و هر کدوم رو با جزئیات توضیح میدیم. فعلاً کافیه بدونید که ما تغییرات فایل hello.tx
رو ثبت کردیم و این تغییر حالا در مخزن ما محفوظ شده.
این مطالبی که خوندیم ترجمه مطالب فصل سوم کتاب بودن اگر که احساس میکنی نیازه که برای بهتر شدن نوشته ها و یا اگه ایده ای داری برای کتاب های بعدی یا هرچیزی میتونی کامنت بزاری نظرتو بهم بگی :)