26
تشکر

آموزش سیستم کنترل نسخه git – بخش دوم

git

git

در بخش اول این آموزش بیشتر جنبه‌های لوکال git را بررسی و مرور کردیم. اینکه چطور git را نصب و راه اندازی کنیم و چطور یک پروژه git تعریف کنیم و همینطور کار با commit و branchها را نیز یاد گرفتیم.

در این مطلب می‌خواهیم ارتباط با سرور git را فعال کنیم و نحوه تعاملات git local با remote git را بیان کنیم.

در ادامه مطلب همراه ما باشید…

git reset

قبل از اینکه در مورد کار با سرور git صحبت کنیم ابتدا در مورد یکی دستورات مهمی که در بخش اول به آن اشاره نکردیم صحبت می‌کنیم.

با استفاده از git reset میتوانیم وضعیت کنونی پروژه را به وضعیت مخصوصی که در یک commit داشته است ببریم، به عبارت دیگر اگر بخواهیم به یک commit خاص در گذشته برگردیم می‌توانیم از این دستور استفاده کنیم. با استفاده از تنظیم hard– می‌توانید مطمئن شوید که تمام فایل‌های پروژه به commit مشخص شده برگشت داده می‌شوند.

اما چطور باید مشخص کنیم که به کدام commit میخواهیم roollback داشته باشیم. اگر یادتان باشد در بخش اول با دستور git log آشنا شدیم، این دستور لیست تمامی commitها را به ما میدهد هر commit دارای یک شناسه SHA است که منحصربفرد است ابتدا این شناسه را کپی میکنیم و سپس در دستور git reset قرار میدهیم.

git reset --hard be14b21444ad59dcd2bab7a3278a0fff554bdad9

remoteها در گیت

در سیستم git به راحتی میتوانید پروژه خودتان را به سرور منتقل کنید که برای اینکار می‌توانید دلیل‌های خودتان را داشته باشید. برای مثال پروژه‌های حساس را به سرور منتقل می‌کنید تا امنیت آن تضمین شود، یا می‌خواهید یک پروژه را در سرویس‌های مجانی git به اشتراک بگذارید مانند github و دلیل‌های دیگر.

git remote

خب اولین دستور که باید برای کار با سرور git با آن آشنا باشیم دستور git remote است. توجه داشته باشید منظور از سرور git میتواند هر سروری باشد، چه سروری در لوکال چه سرویس‌هایی مانند github یا bitbucket و غیره.

خود دستور git remote لیست سرورهای ثبت شده در پروژه را میدهد. برای اضافه کردن یک سرور جدید از دستور git remote add استفاده میکنیم.

برای مثال در کد زیر یک remote جدید با نام github و آدرس نوشته شده به لیست remoteهای پروژه اضافه میشود.

git remote add github https://github.com/mohsen-shafiee/test.git

شما می‌توانید هر تعداد که بخواهید سرور اضافه کنید و محدود به یک سرور نیستید.

با استفاده از دستور git remote remove نیز میتوانید یک remote را از لیست remoteهای پروژه حذف کنید. برای مثال remoteیی که در بالا اضافه کردیم را دوباره حذف می‌کنیم.

git remote remove github

git clone

اگر پروژه شما هم‌ اکنون درون سرور موجود است و شما می‌خواهید یک نسخه از آن را بر روی لوکال بیاورید، اینکار را باید با استفاده از دستور git clone انجام دهید. توسط اینکار پروژه موجود بر روی سرور به همراه برنچ پیشفرض که معمولاً master است دانلود میشود. مثال:

git clone https://github.com/mohsen-shafiee/test.git

git push

پس از تغییرات پروژه در لوکال مثل ایجاد کامیت یا ایجاد یک تگ جدید، این تغییرات باید در سرور نیز بروز و ایجاد شود. برای اینکار از دستور git push استفاده میشود. برای استفاده از این دستور باید حداقل یک remote از قبل تعریف شده باشد.

برای مثال در دستور زیر برنچ master به سرور origin ارسال میشود.

git push origin master

توجه داشته باشید که زمانی git push کار خواهد کرد که وضعیت پروژه clean باشد، یعنی هیچ فایلی برای ایجاد یک کامیت جدید وجود نداشته باشد.

git pull

خب اگر پروژه شما در سرور بروز شده باشد ولی در لوکال این اتفاق نیافتاده باشد و شما بخواهید تغییرات سرور را به لوکال بیاورید باید از دستور git pull استفاده کنید. باز هم این دستور زمانی git push کار خواهد کرد که وضعیت پروژه clean باشد. مثال:

git pull origin master

این دستور تغییرات را از سرور گرفته و با برنچ موجود در لوکال merge میکند. در حالی که دستور git fetch یک برنچ جدید ایجاد میکند.

فایل gitignore.

زمانی که شما درون یک پروژه کار میکند git به صورت خودکار تمام فایل‌ها را به git می‌آورد. شما ممکن است بخواهید بعضی از پوشه ها و فایل‌ها به گیت منتقل نشوند ولی درون پروژه وجود داشته باشند. برای اینکار از فایل gitignore. میتوانید استفاده کنید.

درون این فایل میتوانید لیست پوشه ها و فایل‌هایی که نمیخواهید درون گیت قرار بگیرند را لیست کنید. برای مثال در کد زیر پوشه vendor و فایل config.php و فایل‌های با فرمت md. به گیت منتقل نمیشوند.

vendor/
databese/config.php
*.md

این فایل باید در روت پروژه تعریف شوید، اما میتوانید در مکان های دیگر پروژه هم اینکار را انجام دهید.

نتیجه گیری

امیدواریم این دو مطلب برای آشنایی مقدماتی شما با git مناسب باشد. در انتها اگر به دنبال راه اندازی سایتی مانند github برای سرور لوکال خود هستید میتوانید از Gitlab استفاده کنید.

  • آرمان می‌گه:

    ممنون آقا محسن. خسته نباشی . مفید بود.

  • سعید می‌گه:

    سلام
    در مورد سرور برای git و پروژه ها، Bitbucket سایت خوبیه می تونید استفاده کنید ازش.

  • علی می‌گه:

    یکی از بهترین نوشته های سایت! بسیار سپاسگزارم!


  • نظرات این مطلب بسته است.