راه اندازی مخزن گیت – آموزش کامل راه اندازی Git repository
در دنیای توسعه نرمافزار، کنترل نسخه یکی از مفاهیم اساسی است. اگر شما یک برنامهنویس، دانشجو یا حتی یک طراح وب هستید، احتمالاً با Git آشنا هستید. Git یک سیستم کنترل نسخه توزیعشده است که به شما امکان میدهد تغییرات در پروژههای خود را پیگیری کنید، نسخههای مختلف را مدیریت کنید و با همکاران خود هماهنگ شوید. در این مقاله، به شما نشان خواهیم داد چگونه یک مخزن (repo) Git را راهاندازی کنید. از راه اندازی مخزن گیت جدید تا کلون کردن یک مخزن موجود، از Commit کردن تغییرات تا پیکربندی ارتباط با یک سرویس میزبانی Git، همه چیز را در این مقاله پوشش خواهیم داد.
با پایان این مقاله، شما قادر خواهید بود تا:
- یک مخزن Git ایجاد کنید.
- از دستورات متداول کنترل نسخه Git استفاده کنید.
- یک فایل تغییر یافته را Commit کنید.
- تاریخچه پروژه خود را مشاهده کنید.
- اتصالی به یک سرویس میزبانی Git (مانند Bitbucket) پیکربندی کنید.
پس با ما همراه باشید.
مخزن گیت چیست؟
مخزن گیت (Git repository)، یک فضای مجازی برای پروژه شماست. گیت به شما اجازه میدهد نسخههای مختلف کد خود را ذخیره کنید تا در زمانِ نیاز، به آن دسترسی داشته باشید.
راه اندازی مخزن گیت جدید: git init
برای راه اندازی مخزن گیت جدید، باید از دستور git init استفاده کنید. این دستور تنها یکبار در مرحله اولیه تنظیم مخزن جدید اجرا میشود. با اجرای این دستور، یک زیرشاخه جدید با نام .git در دایرکتوری کاری فعلیتان ایجاد میشود. البته یک شاخه اصلی جدید نیز ساخته میشود.
با به کارگیری نکات و ترفندهای گیت، میتوانید راهاندازی مخزن در git را به سرعت و با کارایی بالا انجام دهید که این امر به نوبه خود، باعث افزایش قابل توجهی در بهرهوری توسعهدهندگان میشود.
نسخه سازی یک پروژه موجود با یک مخزن git جدید
در اینجا فرض بر این است که از قبل یک پوشه پروژه دارید و میخواهید یک مخزنِ جدید در آن ایجاد کنید. برای این کار، ابتدا cd به پوشه root (پوشه اصلی پروژه) بروید و سپس دستور git init را اجرا کنید.
برای آموزش ساخت پروژه در گیت به این صفحه مراجعه کنید.
cd /path/to/your/existing/code
git init
اگر دستور git init را با دایرکتوری پروژهای که از قبل وجود دارد اجرا کنید، تنظیمات مشابهی با آنچه در بالا ذکر شده است، اجرا خواهد شد، اما محدود به آن دایرکتوری پروژه، خواهد بود.
git init <project directory>
کلون کردن(کپی یا شبیهسازی) یک مخزن موجود: git clone
اگر پروژهای قبلاً در یک مخزن مرکزی راهاندازی شده باشد، دستور clone رایجترین راه برای کاربران جهت به دست آوردن یک کلون توسعه محلی است. این عملیات مشابه دستور git init است و معمولاً یک عملیات یکبارمصرف است. هنگامی که یک توسعهدهنده نسخهای کارآمد را به دست آورد، تمام عملیات کنترل نسخه از طریق مخزن محلی آنها مدیریت خواهد شد.
git clone <repo url>
دستور git clone برای ایجاد یک نسخه یا کلون از مخازن راهاندازیشده در مخازن از راه دور استفاده میشود. شما یک URL مخزن را به git clone ارسال میکنید. گیت، پروتکلها و فرمتهای URL مرتبط با آنها را پشتیبانی میکند. در این مثال، ما از پروتکل SSH گیت استفاده خواهیم کرد. URLهای Git SSH از الگوهای زیر استفاده میکنند:
- HOSTNAME: bitbucket.org
- USERNAME: rhyolight
- REPONAME: javascript-data-store
وقتی این دستور اجرا میشود، آخرین نسخه از فایلهای مخزن از شاخه اصلی به پایین کشیده میشود و به یک پوشه جدید اضافه میشود. این پوشه جدید با نام REPONAME در این مورد javascript-data-store نامگذاری میشود. این پوشه شامل تاریخچه کامل مخزن از راه دور و یک شاخه اصلی تازه ایجادشده خواهد بود.
پیشنهاد مطالعه: Git LFS چیست؟ راهنمای کامل Git large file storage
ذخیره تغییرات در مخزن: git add و git commit
حالا که راه اندازی مخزن گیت یا کلون را انجام داید، میتوانید تغییرات نسخه فایلها را در آن ذخیره کنید. در مثال زیر فرض میشود که شما یک پروژه در مسیر /path/to/project راهاندازی کردهاید. مراحل انجام شده در این مثال عبارتند از:
- تغییر دایرکتویها به /path/to/project
- ایجاد یک فایل جدید به نام CommitTest.txt با محتوای Test content for git tutorial
- افزودن CommitTest.txt به منطقه استیجینگ مرحلهبندی) مخزن
- یک کامیت جدید (commit) با پیامی که کار انجام شده در آن را توضیح میدهد، ایجاد کنید.
توضیح:
cd /path/to/project
echo “test content for git tutorial” >> CommitTest.txt
git add CommitTest.txt
git commit -m “added CommitTest.txt to the repo”
بعد از اجرای این مثال، اکنون مخزن CommitTest.txt به تاریخچه اضافه است و بهروزرسانیها را در فایل پیگیری خواهد کرد.
این مثال دو دستور دیگر از گیت را معرفی کرد: add و commit. یکی دیگر از رایجترن موارد استفاده git add، گزینه –all است. git add –all تغییرات و فایلهای غیرقابل پیگیری در مخزن را اجرا ميکند و درخت کاری مخزن را بهروز میکند.
همکاری بین مخزنها (Repo-to-repo): git push
در مقایسه با سیستم نسخهبرداری SVN، گیت تفاوتهای قابل توجهی در مفهوم کپی کاری (working copy) دارد. در گیت، تفاوتی بین کپیهای کاری و مخازن مرکزی وجود ندارد؛ همه آنها مخازن گیت کامل هستند. این باعث میشود همکاری با گیت بهطور اساسی با همکاری در SVN متفاوت باشد. درحالیکه SVN براساس رابطه بین مخزن مرکزی و کپی کاری کار میکند، مدل همکاری گیت براساس تعامل مخزن به مخزن است. به جای چک کردن کپی کاری در مخزن مرکزی SVN، شما اقدام به ارسال یا دریافت تغییرات commits از یک مخزن به مخزن دیگر میکنید.
البته، شما میتوانید به مخازن گیت معنای خاصی اختصاص دهید. به عنوان مثال، با تعیین یک مخزن گیت بهعنوان مخزن central، میتوانید یک جریان کاری متمرکز را با استفاده از گیت تکرار کنید. این کار از طریق توافقنامهها و نه از طریق تنظیمات مستقیم در VCS انجام میشود.
تفاوت بین مخازن خام (Bare) و کلونشده (Cloned)
اگر در بخش «راه اندازی مخزن گیت جدید»، از دستور git clone برای تنظیم مخزن محلی خود استفاده کردهاید، مخزن شما به طور خودکار برای همکاری از راه دور پیکربندی شده است. دستور git clone به طور خودکار مخزن شما را با یک مخزن از راه دور به URL Git که از آن کلون کردهاید، پیکربندی میکند. این بدان معناست که پس از انجام تغییرات در یک فایل و ثبت آنها، میتوانید آن تغییرات را با استفاده از دستور git push به مخزن از راه دور ارسال کنید.
اگر از دستور git init برای ایجاد یک مخزن تازه استفاده کردهاید، مخزن از راه دور برای ارسال تغییرات به آن وجود ندارد. یک الگوی متداول، هنگامِ ایجاد یک مخزن جدید، استفاده از یک سرویس Git میزبانیشده مانند Bitbucket و ایجاد یک مخزن در آن است. این سرویس یک URL Git را ارائه میدهد که میتوانید آن را به مخزن Git محلی خود اضافه کرده و با استفاده از دستور git push به مخزن میزبانی شده ارسال کنید. پس از ایجاد یک مخزن از راه دور با سرویس انتخابی خود، باید مخزن محلی خود را با یک نگاشت بهروز کنید. این فرآیند را در راهنمای پیکربندی و راهاندازی زیر بررسی میکنیم.
اگر ترجیح میدهید مخزن از راه دور خود را میزبانی کنید، باید یک مخزن خام (Bare Repository) را تنظیم کنید. هر دو دستور git init و git clone یک آرگومان –bare را قبول میکنند. مورد کاربرد رایجتر برای مخزن خام، ایجاد یک مخزن گیت مرکزی از راه دور است.
پیکربندی و تنظیمات: git config
پس از تنظیم مخزن از راه دور، باید URL مخزن از راه دور را به پیکربندی گیت محلی خود اضافه کنید و برای شاخههای محلیتان یک شاخه بالادستی (upstream) تنظیم کنید. دستور git remote این امکان را فراهم میکند.
git remote add <remote_name> <remote_repo_url>
این دستور به شما اجازه میدهد تا یک مخزن دوردست را در آدرس مشخصشده remote_repo_url به عنوان یک نقطه مرجع در مخزن محلی خود تحت نام remote_name تعریف کنید. پس از این تعریف، قادر خواهید بود تا شاخههای محلی خود را به مخزن کنترل از راه دور پوش کنید.
git push -u <remote_name> <local_branch_name>
این دستور، شاخه محلی مخزن شما با نام local_branch_name را به مخزن از راه دوری که با remote_name مشخصشده است، ارسال میکند. این کار به شما امکان میدهد تا تغییرات و بهروزرسانیهای انجام شده در مخزن محلیتان را با دیگران در مخزن از راه دور به اشتراک بگذارید.
در کنار تنظیم نشانی URL مخزن دوردست، شما ممکن است به تنظیم گزینههای پیکربندی سراسری Git نیز نیاز داشته باشید، مانند نام کاربری یا ایمیل. دستور git config امکان پیکربندی نصب گیت شما (یا یک مخزن خاص) را از طریق خط فرمان فراهم میآورد. این دستور قادر است تمامی جنبههایی از قبیل اطلاعات کاربری، ترجیحات، تا رفتار یک مخزن را تعریف کند. برخی از گزینههای پیکربندی رایج در زیر فهرست شدهاند.
Git گزینههای پیکربندی را در سه فایل جداگانه ذخیره میکند که به شما امکان میدهد گزینهها را برای مخازن فردی (محلی/Local)، کاربر (جهانیGlobal/) یا کل سیستم (System) محدود کنید:
- محلی: /.git/config – تنظیمات مخصوص مخزن.
- سراسری: /.gitconfig – تنظیمات مخصوص کاربر. اینجا جایی است که گزینههای تنظیمشده با پرچم –global ذخیره میشوند.
- سیستمی: $(prefix)/etc/gitconfig – تنظیمات سراسری سیستم.
در این مرحله از راه اندازی مخزن گیت، نام نویسندهای را که میخواهید برای تمام کامیتها در مخزن فعلی استفاده شود تعریف کنید. معمولاً، شما میخواهید از پرچم –global برای تنظیم گزینههای پیکربندی برای کاربر فعلی استفاده کنید.
git config –global user.name <name>
نام نویسنده را تعریف کنید تا برای تمامی commitها توسط کاربر فعلی استفاده شود.
استفاده از گزینه –local یا عدم ارائه هر گزینه سطح پیکربندی، نام کاربری را برای مخزن محلی فعلی –localuser.name تنظیم میکند. این کمک میکند تا بتوانید نام کاربری مورد استفاده در کامیتهای مخزن محلی را مشخص کنید.
git config –local user.email <email>
ایمیل نویسندهای که قرار است برای تمام کامیتهای انجام شده توسط کاربر فعلی استفاده شود را تعریف کنید. این ایمیل به عنوان بخشی از هویت شما در هنگام کامیت به کد، ثبت و نمایش داده میشود.
git config –global alias.<alias-name> <git-command>
برای ایجاد یک میانبر برای دستور Git، میتوانید از این ابزار قدرتمند استفاده کنید. این امکان به شما اجازه میدهد تا میانبرهای سفارشی برای دستورات رایج Git ایجاد کنید. یک نمونه ساده میتواند به این صورت باشد:
git config –global alias.ci commit
این دستور یک میانبر به نام ci ایجاد میکند که میتوانید آن را بهعنوان یک میانبر برای دستور git commit استفاده کنید.
it config –system core.editor <editor>
برای تعیین ویرایشگر متنی که توسط دستوراتی مانند git commit برای تمام کاربران روی دستگاه فعلی استفاده میشود، میتوانید از دستور زیر استفاده کنید. آرگومان < editor > باید دستوری باشد که ویرایشگر مورد نظر را اجرا میکند (مثلاً، vi). این مثال، گزینه –system را معرفی میکند. گزینه –system پیکربندی را برای کل سیستم تنظیم میکند به این معنی که برای تمام کاربران و مخازن روی یک دستگاه اعمال میشود.
git config –global –edit
برای ویرایش دستی، فایل پیکربندی سراسری را در یک ویرایشگر متن باز کنید. در مکتب خونه راهنمای جامعی در مورد نحوه کار مخزن گیت و پیکربندی یک ویرایشگر متن برای استفاده در گیت، موجود است. این راهنما شما را با گامهای لازم برای تنظیم ویرایشگر متن مورد نظرتان آشنا میکند.
پیشنهاد مطالعه: آموزش گیت در اندروید: تسلط بر گیت برای توسعه دهندگان و کاربران اندروید
بحث
در راه اندازی مخزن گیت، تمام گزینههای پیکربندی در فایلهای متنی ذخیره میشوند، بنابراین دستور git config در واقع یک رابط خط فرمان آسان است. معمولاً، تنها باید یک بار در زمان شروع کار با یک ماشین توسعه جدید پیکربندی نصب Git را انجام دهید و در تقریباً همه موارد، از پرچم –global استفاده میکنید. یک استثناء مهم برای نادیده گرفتن آدرس ایمیل نویسنده است. ممکن است بخواهید آدرس ایمیل شخصی خود را برای مخزنهای شخصی و منبع باز تنظیم کنید و آدرس ایمیل حرفهای خود را برای مخزنهای مرتبط با کار تنظیم کنید.
گیت تنظیمات پیکربندی را در سه فایل جداگانه ذخیره میکند که به شما امکان میدهد گزینهها را به مخزنها، کاربران یا کل سیستم اختصاص دهید:
- /.git/config: تنظیمات مخصوص مخزن.
- ~/.gitconfig: تنظیمات مخصوص کاربر. اینجاست که گزینههای با پرچم –global ذخیره میشوند.
- $(prefix)/etc/gitconfig: تنظیمات سیستمی.
وقتی گزینهها در این فایلها تداخل دارند، تنظیمات محلی تنظیمات کاربر را نادیده میگیرند و تنظیمات کاربر تنظیمات سیستمی را نادیده میگیرد. اگر هر یک از این فایلها را باز کنید، چیزی شبیه به زیر را مشاهده خواهید کرد:
[user] name = John Smith email = john@example.com [alias] st = status co = checkout br = branch up = rebase ci = commit [core] editor = vim
میتوانید این مقادیر را به صورت دستی و با تاثیر دقیق همان git config ویرایش کنید.
مثال:
پس از نصب Git، اولین کاری که باید انجام دهید، تنظیم نام و ایمیل خود و سفارشیسازی برخی از تنظیمات پیشفرض است. یک پیکربندی اولیه معمولاً شبیه به مثال زیر خواهد بود:
خود را به گیت معرفی کنید git config
git –global user.name “John Smith” git config –global user.email john@example.com
برای متن خود ویرایشگر مورد علاقهتان را وارد کنید.
git config –global core.editor vim
چند نام مستعار شبیه SVN اضافه کنید.
توضیح:
git config –global alias.st status
git config –global alias.co checkout
git config –global alias.br branch
git config –global alias.up rebase
git config –global alias.ci commit
این دستور، فایل ~ /.gitconfig را از بخش قبلی تولید میکند.
سخن پایانی
در این مقاله چگونگی راه اندازی مخزن گیت با دو روش git init و git clone را گفتیم. این راهنما میتواند برای مدیریت کد منبع نرمافزار یا محتوای دیگری که نیاز به نسخهبندی دارد، استفاده شود. همچنین در سطح بالا، git add، git commit، git push و git remote نیز معرفی و استفاده شدهاند.
همچنین به بررسی و تشریح دو روش اصلی برای ایجاد یک مخزن گیت پرداختیم: استفاده از git init برای ساخت یک مخزن جدید از ابتدا و git clone برای کپی کردن یک مخزن موجود. این دو روش، پایه و اساس کار با گیت را تشکیل میدهند و به توسعهدهندگان امکان میدهند تا پروژههای نرمافزاری و سایر محتواهایی که نیاز به نسخهبندی دارند را به طور مؤثر مدیریت کنند.
علاوه بر اینها، دستورات git add، git commit، git push و git remote را معرفی کردیم که هر کدام نقش مهمی در چرخه کار با گیت ایفا میکنند. git add برای اضافه کردن تغییرات به استیج استفاده میشود، git commit برای ثبت تغییرات در تاریخچه مخزن، git push برای ارسال تغییرات به یک مخزن دوردست و git remote برای مدیریت ارتباط با مخازن دوردست.
پیشنهاد مطالعه: آموزش کار با گیت فلو و همه چیز در رابطه با آن
آموزش Git در مکتب خونه
آمادهاید تا با گیت، جادوی کدنویسی خود را به نمایش بگذارید؟ مکتب خونه با دورههای ویدئویی آموزش برنامه نویسی و آموزش گیت، دروازهای به دنیای کدینگ بدون مرز باز میکند. از شروع کار با مخزن گت و git init برای راه اندازی git تا git push برای به اشتراکگذاری پروژههایتان، هر قدمی که برمیدارید شما را به یک توسعهدهنده متبحر تبدیل میکند. همین الان شروع کنید و با دورههای ما، تواناییهای خود را به سطحی که هرگز تصورش را نمیکردید برسانید. راه اندازی مخزن گیت به شما امکان میدهد تا پروژههای خود را در گیت هاب مدیریت کنید، جایی که همکاری و نسخهبندی در جامعه توسعهدهندگان به اوج میرسد. با مکتب خونه، هر روز یک قدم به جلو بردارید و در مسیر تبدیل شدن به یک حرفهای گیت، پیشرفت کنید.