هر آنچه در رابطه با گیت و نحوه کار با آن باید بدانید
نرم افزار گیت به صورت پیش فرض بر روی اکثر نسخههای لینوکس نصب است. شما حتی بدون داشتن سرور گیت، میتوانید از این نرم افزار بر روی سیستم خود به تنهایی استفاده کنید و از مزایای آن مانند ورژن کنترل بهره ببرید.
فهرست مطالب
مفهوم Repository در Git
در Git، مخزن یا به انگلیسی “Repository” به اختصار “repo”، محیطی است که تمام فایلها، تاریخچه تغییرات، شاخهها، و اطلاعات مربوط به یک پروژه نرمافزاری را به صورت نسخهگیری مدیریت میکند. در واقع، مخزن Git یک دایرکتوری خاص در سیستم شما است که تمام اطلاعات مربوط به پروژه شما را در قالب یک پایگاه داده توزیع شده ذخیره میکند.
Repository شامل دو بخش اصلی است:
- مخزن محلی (Local Repository): این بخش در دستگاه شما قرار دارد و تمام اطلاعات مربوط به پروژه شما را در دسترس دارد. هر کامیت (commit)، تاریخچه تغییرات، و شاخهها در این مخزن ذخیره میشوند.
- مخزن اصلی (Remote Repository): این بخش در یک مکان دیگر (معمولاً روی یک سرور یا سرویس وب مثل GitHub یا GitLab) قرار دارد و نسخههای مخزن شما را به صورت مشترک برای اعضای تیم و توسعهدهندگان دیگر در دسترس قرار میدهد. شما میتوانید تغییرات اعمال شده در مخزن محلی را به مخزن اصلی منتقل کنید و بالعکس.
مخزن Git از سیستم کنترل نسخه نرمافزاری (Version Control System یا VCS) به نام Git برای ردیابی تاریخچه تغییرات فایلها و کدهای منبعی پروژهها استفاده میکند. این ابزار به توسعهدهندگان امکان میدهد تا تغییرات را ثبت کرده، به تعهدها (commit) اضافه کنند، و با اعضای تیم خود به صورت همزمان کار کنند. همچنین، از مخزن Git میتوان برای بازگشت به نسخههای قدیمی پروژه و مدیریت تعداد زیادی شاخه (branch) برای توسعه موازی و توزیع شده استفاده کرد.
در نخستین گام برای استفاده از گیت باید یک Repository بسازید که فایلهای پروژه درون آن قرار میگیرند. برای ساخت یک Repository از دستور زیر استفاده میکنیم:
#git init
دستور git init یک دستور اساسی در Git است که برای ایجاد یک مخزن Git جدید یا مبدأ Git در دایرکتوری فعلی استفاده میشود. وقتی این دستور اجرا میشود، یک مخزن Git خالی در دایرکتوری فعلی ایجاد میشود و Git شروع به ردیابی تغییرات فایلها و پروژه شما میکند. این کارها عبارتند از:
- ایجاد مخزن Git: دستور git init ایجاد مخزن Git جدیدی در دایرکتوری فعلی انجام میدهد. این مخزن شامل تمام اطلاعات مربوط به تغییرات، تاریخچهها و شاخهها در پروژه شما خواهد بود.
- تنظیمکردن محیط کاری Git: این دستور تمام فایلهای دایرکتوری فعلی را به عنوان فایلهای جدید ویرایش شده در نظر میگیرد و آماده میکند تا به مخزن Git اضافه و ثبت شوند.
- تعیین فایلهای ردیابی شده و غیرردیابی شده: از این نقطه به بعد، فایلهای جدیدی که ایجاد میکنید یا ویرایش میکنید، باید به صورت دستی به Git اضافه شوند (با دستور git add) و سپس تغییرات باید با دستور git commit ثبت شوند.
دستور git init معمولاً اولین دستوری است که در شروع یک پروژه جدید با Git اجرا میشود تا یک مخزن جدید ایجاد شود و پروژه را به مدیریت نسخه گیری Git بسپارد.
#git status
دستور git status یکی از مهمترین و پرکاربردترین دستورات در Git است و برای بررسی وضعیت مخزن Git فعلی و فایلهای آن استفاده میشود. وقتی این دستور اجرا میشود، Git اطلاعاتی ارائه میدهد که به شما کمک میکند درک کنید که:
- کدام فایلها تغییر کردهاند و به درستی به Git اضافه شدهاند (ردیابی شده).
- کدام فایلها تغییر کردهاند ولی به درستی به Git اضافه نشدهاند (غیرردیابی شده).
- کدام فایلها تغییر نکردهاند و در وضعیت Clean هستند (تغییر نکرده).
دستور git status به صورت پیشفرض وضعیت برنچ فعلی را نیز نمایش میدهد و اطلاعاتی از قبیل نام برنچ فعلی، تعداد تعهدات (commit) و وضعیت ارتباط با مخزن اصلی (remote repository) را نیز نمایش میدهد.
برای استفاده از دستور git status، به سادگی وارد دایرکتوری مخزن Git خود شوید و این دستور را اجرا کنید. اطلاعاتی که در خروجی این دستور نمایش داده میشود، به شما کمک میکند تا مراحلی که باید برای مدیریت نسخه در پروژه انجام دهید را متوجه شوید.
نحوه پاک کردن مخزن در گیت
برای پاک کردن یک مخزن به سادگی وارد آدرس آن مخزن شده و دستور زیر را وارد نمایید:
#rm -rf .git
نحوه افزودن فایل به مخزن
همانطور که در خروجی دستور git status مشاهده مینمایید، تمامی فایلها و دایرکتوریهایی که در داخل جایی که دستور git init را زدهاید، در حالت untracked قرار دارند و این یعنی وارد مخزن مربوطه نشدهاند. برای وارد کردن فایلها به داخل مخزن باید از دستور زیر استفاده کنید:
#git add <filename…..>
حال که فایل به مخزن افزوده شده، با زدن دستور git status مشاهده میکنید که فایل مربوطه از حالت untracked به حالت staged رفته و آماده Commit شده است.
مفهوم Commit در Git
در گیت، Commit (تعهد) به عملی اشاره دارد که تغییراتی که در فایلها یا کدهای منبع پروژه انجام دادهاید را به مخزن Git اضافه میکند. به طور کلی، Commit یک نقطهی نسخهگیری در تاریخچه پروژه شماست و تمام تغییرات اعمال شده در آن لحظه به عنوان یک “تعهد” (commit) ثبت میشوند. این تعهد شامل اطلاعاتی مانند:
- تغییرات: تمام تغییراتی که در فایلها انجام دادهاید، از افزودن یا حذف خطوط کد تا تغییر نام فایلها.
- توضیحات (Commit Message): یک پیام کوتاه که توضیح میدهد که چه تغییراتی در این تعهد انجام شده است. این پیام باید مختصر و مفهومی باشد تا دیگر توسعهدهندگان بتوانند به راحتی درک کنند که چه تغییراتی صورت گرفته است.
- شماره تعهد (Commit Hash): یک شناسه یکتا که به هر تعهد اختصاص داده میشود و به عنوان شناسه منحصر به فرد تعهد در مخزن Git شما عمل میکند.
Commit در Git بسیار مهم است چرا که:
– اجازه میدهد تاریخچه تغییرات پروژه را ردیابی کرده و بازگشت به نسخههای قدیمی پروژه بسیار راحت میشود.
– به توسعهدهندگان امکان همکاری مشترک بر روی پروژه را فراهم میکند، چرا که تغییرات توسط هر توسعهدهنده به صورت جداگانه و در تعهدهای مختلف ثبت میشوند.
– اطلاعاتی که در پیام تعهد وارد میشود، به توسعهدهندگان کمک میکند تا درک کنند که چرا تغییراتی انجام شده است و کدام بخش از پروژه تحت تغییر قرار گرفته است.
برای ایجاد یک Commit در Git، شما ابتدا تغییرات خود را با دستور git add به مرحله “ردیابی شده” (Staged) اضافه میکنید و سپس با دستور git commit تعهد را ثبت میکنید.
نکتهای که در رابطه با commit مهم است این است که شما تنها میتوانید فایلهایی که در مرحله staged هستند را commit کنید. دستور زیر این کار را برای شما انجام میدهد:
#git commit <filename…..>
نکته: ثبت ایمیل و نام کاربری در گیت: قبل از هر کامیت زدنی باید با دو دستور زیر، ایمیل و نام کاربری خود را برای گیت تعریف کنید. به جای you@example.com از ایمیل خود و به جای Your Name نام خود را وارد کنید. سوئیچ global نیز تعیین میکند که از این اطلاعات برای تمام مخازن این سیستم استفاده کند:
#git config –global user.email “you@example.com”
#git config –global user.name “Your Name”
مرحله unstaged در گیت چیست؟
اگر تغییری در یکی از فایلهایی که در مخزن شما قرار دارد بدهید، با زدن دستور git status مشاهده میکنید که آن فایل به حالت unstaged وارد شده است. با دستور git add مجدد باید آن را به حالت staged بیاورید. البته دستور زیر نیز تمام فایلها را از حالت unstaged به staged آورده و آنها را commit میکند:
#git commit -a
توضیحات در Commit
وقتی دستور commit را میزنید وارد یک محیط text editor میشوید. در اینجا باید یک توضیحی در رابطه با commit مذکور نوشته و سپس آن را ذخیره کنید تا commit انجام شود. در صورتی که نخواهید وارد این text editor شوید، میتوانید از دستور زیر استفاده نمایید تا در همان حالت دستور، توضیح خود را وارد نمایید:
#git commit -m “Description about Commit” <filename…..>
مشاهده سابقه Commitها و مقایسه آنها
دستور git log در Git برای نمایش تاریخچه تعهدات (commits) پروژه استفاده میشود. این دستور نمایش میدهد که چه تعهداتی در مخزن Git شما ایجاد شدهاند، هر تعهد کدام تغییرات را شامل میشود، و اطلاعات مربوط به هر تعهد را نمایش میدهد. دستور git log به طور پیشفرض تعهدات را به ترتیب زمانی (از جدیدترین تعهد به قدیمیترین تعهد) نمایش میدهد.
#git log
این دستور نمایش تاریخچه تمام تعهدات پروژه شما را نشان میدهد. برای خروج از نمایش تاریخچه، میتوانید کلید `q` را فشار دهید.
دستور دیگری در این زمینه وجود دارد که میتوانید تغییرات بین دو Commit را با هم مقایسه کنید. این دستور git diff میباشد. دستور git diff در Git برای مشاهده تفاوتها (diff) بین دو وضعیت یا نسخه از پروندهها و تغییرات کد در پروژه استفاده میشود. این دستور به شما امکان میدهد تا تغییرات اعمال شده در فایلها، تعهدها (commits)، یا حتی میان دو شاخه (branch) مختلف را مشاهده کنید.
دستور git diff به چندین شکل مختلف برای مقایسه تغییرات میتواند استفاده شود:
۱ – مقایسه تغییرات بین مرحلههای “ردیابی شده” و “تعهد”: برای مشاهده تغییراتی که بین فایلهای مرحله “ردیابی شده” (staged) و تعهدها (commits) انجام شده است، دستور زیر را میتوانید استفاده کنید:
#git diff –staged
۲. مقایسه تغییرات بین دو تعهد: برای مشاهده تفاوتها بین دو تعهد مختلف، میتوانید شناسه تعهدهای مورد نظر را به دستور git diff بدهید. مثلاً:
#git diff abc123 def456
در اینجا، `abc123` و `def456` به شناسه دو تعهد مورد نظر اشاره دارند.
۳. مقایسه تغییرات بین دو شاخه: برای مشاهده تغییراتی که بین دو شاخه مختلف انجام شده است، میتوانید از دستور زیر استفاده کنید:
#git diff branch1..branch2
در اینجا، `branch1` و `branch2` به نام دو شاخه مورد نظر اشاره دارند.
۴. مشاهده تغییرات بین وضعیت کنونی کاری و آخرین تعهد: برای مشاهده تغییراتی که بین وضعیت کنونی کاری شما و آخرین تعهد (commit) انجام شده است، دستور `git diff` را بدون هیچ پارامتری اجرا کنید:
#git diff
این دستور تفاوتهایی را نشان میدهد که بین شما و آخرین تعهد وجود دارد.
دستور git diff مفید است تا تغییرات در پروژه را مشاهده کرده و مطمئن شوید که تغییرات مورد نظر به درستی اعمال شدهاند. این دستور به عنوان ابزاری مفهومی برای مدیریت نسخه کاربرد دارد و به توسعهدهندگان کمک میکند تا تغییرات خود را به درستی ردیابی کنند.
برگشت از یک Commit
گاهی ممکن است تغییراتی در یک برنچ بدهید و پشت سر هم commit بزنید و به جلو حرکت کنید اما در یک جایی پشیمان شوید و تصمیم بگیرید به چند commit قبل برگشته و چیزهایی که زدید را به طور کامل حذف کنید.
برای انجام این کار باید با استفاده از دستور git log شماره کامیتی که میخواهید به آن برگردید را بردارید و سپس از دستور git reset استفاده کنید.
#git reset 3836e6c5883e2c24fa12ca5244559af0733f9a08 –hard
دستور git reset با فلگ hard– یکی از دستورات قدرتمند در سیستم کنترل نسخه Git است که به شما امکان بازگشت به یک commit خاص در تاریخچه پروژه را میدهد.
این دستور سه عمل مهم را انجام میدهد:
۱. git reset: این دستور برای بازگشت به commit خاصی در تاریخچه پروژه استفاده میشود.
۲. ۳۸۳۶e6c5883e2c24fa12ca5244559af0733f9a08: این بخش از دستور SHA-1 hash commit مورد نظر شما را مشخص میکند. با اجرای این دستور، شما به commit با این SHA-1 hash باز میگردید.
۳. hard–: این فلگ به Git میگوید که بهطور کامل ویرایشها و تغییراتی که در commitهای بعدی ایجاد شدهاند را حذف کند و تمامی تغییرات را بر اساس commit مورد نظر اعمال کند. بنابراین، پروژه شما به وضعیت commit انتخاب شده باز میگردد و تغییرات بعدی حذف میشوند.
در کل، این دستور به شما این امکان را میدهد تا به یک نقطه خاص در تاریخچه پروژه بازگردید و تمامی تغییرات بعدی را از بین ببرید. از این دستور با احتیاط استفاده کنید، زیرا تغییرات بعدی از بین میرود و قابل بازیابی نیست.
کاربرد فایل Gitignore در مخزن گیت
فایل .gitignore یکی از ابزارهای مهم در مدیریت نسخه (Version Control) با Git است. این فایل به Git میگوید که کدام فایلها و دایرکتوریها را نادیده بگیرد و در تاریخچه (commit history) پروژه نگه ندارد. به عبارت دیگر، فایل `.gitignore` برای اعلام فایلها و دایرکتوریهایی استفاده میشود که نمیخواهید در مخزن Git ثبت و ردیابی شوند.
کاربردهای اصلی فایل .gitignore شامل موارد زیر میشود:
- عدم ردیابی فایلهای موقتی و مخلفات کامپایل: معمولاً فایلهای موقتی و خروجیهای کامپایل (مثل فایلهای با پسوند `.pyc`, `.class`, `.o`, و غیره) به تاریخچه Git اضافه نمیشوند.
- عدم ردیابی فایلها و دایرکتوریهای مرتبط با محیط توسعه: مثلاً دایرکتوریهای مختص IDEها، فایلهای تنظیمات پروژه خصوصی IDE، و فایلهای زبانهای برنامهنویسی خاص به طور معمول در .gitignore قرار میگیرند.
- عدم ردیابی فایلهای حساس به امنیت: ممکن است فایلهای حاوی اطلاعات حساس مانند رمزهای عبور یا کلیدهای اتصال به سرویسها در پروژه وجود داشته باشند. این فایلها باید در .gitignore قرار بگیرند تا از افشای آن جلوگیری شود.
- عدم ردیابی فایلهای بزرگ یا بدون رمز: برای افزایش سرعت کار با Git، فایلهای بسیار بزرگ مانند فایلهای باینری دادهای بزرگ یا فایلهای غیرضروری برای پروژه در .gitignore قرار میگیرند.
- عدم ردیابی فایلهای خروجی و فایلهای موقتی سیستم عامل: فایلهای خروجی سیستم عامل مانند فایلهای `Thumbs.db` در ویندوز یا `.DS_Store` در مکینتاش نیز در .gitignore قرار میگیرند.
- عدم ردیابی فایلهای وابسته به محیط اجرا: مثلاً فایلهای مختص به محیط اجرای وب (مثل فایلهای log و cache) نیز در .gitignore قرار میگیرند.
فایل .gitignore به صورت متنی تعریف میشود و در ریشه پروژه (دایرکتوری اصلی مخزن) یا در دایرکتوریهای زیرشاخه قرار میگیرد. در این فایل، شما میتوانید الگوها و پترنهایی برای فایلها و دایرکتوریهایی که میخواهید نادیده گرفته شوند، اضافه کنید.
مثال از محتوای یک فایل .gitignore ساده:
# Ignore compiled Python files
*.pyc
# Ignore log files
logs/
# Ignore environment-specific files
config/local.env
با استفاده از فایل .gitignore بهعنوان ابزار مدیریت نسخه، شما میتوانید محیط پروژه را بهبود بخشیده و از درج فایلهای غیرضروری در تاریخچه Git جلوگیری کنید.
مفهوم Branch در Git
در Git، مفهوم “Branch” (شاخه) به شکلهای مختلفی مورد استفاده قرار میگیرد، اما در کل، یک شاخه به یک خط توسعه مستقل از شاخه اصلی یا دیگر شاخهها اشاره دارد. همچنین، شاخهها به شما اجازه میدهند تا تغییرات خود را به طور موازی بر روی یک پروژه اعمال کنید و پس از تکمیل کارهای خود، تغییرات را با شاخه اصلی (معمولاً شاخه اصلی به نام “master” یا “main” است) ادغام کنید. در ادامه توضیحاتی در مورد مفهوم شاخهها (Branches) در Git آورده شده است:
۱. شاخه اصلی (Master/Main Branch):
– شاخه اصلی در Git معمولاً با نام “master” یا “main” شناخته میشود.
– این شاخه معمولاً شاخه پایهای برای پروژه است و تاریخچه اصلی تغییرات در آن ثبت میشود.
۲. شاخه فیچر (Feature Branch):
– شاخههای فیچر برای توسعه ویژگیهای جدید یا اصلاحات بزرگ در پروژه استفاده میشوند.
– برای هر ویژگی جدید یا تغییر معنادار، معمولاً یک شاخه جدید ایجاد میشود تا تغییرات مرتبط با آن ویژگی روی آن شاخه انجام شود.
۳. شاخه تصحیحی (Bugfix Branch):
– شاخههای باگ فیکس برای رفع خطاها (باگها) یا مشکلات اضطراری در پروژه ایجاد میشوند.
– این شاخهها به توسعهدهندگان اجازه میدهند تا خطاها را به صورت جداگانه برطرف کنند و تغییرات را ادغام کنند.
۴. شاخه اصلی در حال توسعه (Development/Main in Development):
– برای پروژههای بزرگتر، ممکن است یک شاخه اصلی جداگانه برای توسعه و تستهای پیشینه ایجاد شود.
– توسعهدهندگان معمولاً تغییرات خود را در این شاخه اعمال کرده و پس از تستهای لازم، آن را با شاخه اصلی ادغام میکنند.
۵. شاخههای مختص به نسخه (Release Branches):
– برای هر نسخه اصلی از پروژه، ممکن است یک شاخه مختص به نسخه ایجاد شود.
– این شاخهها به تیمها اجازه میدهند تا تغییرات نسخه را مدیریت کرده و برای عرضه نسخه آماده کنند.
۶. شاخههای اصلاح (Hotfix Branches):
– شاخههای اصلاح برای رفع مشکلات اساسی و اضطراری در محصول در مرحله انتشار (production) ایجاد میشوند.
– این شاخهها به تیمها اجازه میدهند تا خطاها در محیط تولید را سریعاً برطرف کنند.
شاخهها در Git به تیمها امکان میدهند به صورت موازی و همزمان بر روی پروژه کار کنند و بدون ایجاد تداخلهای اصلی تغییرات را اعمال کنند. پس از تکمیل کار در یک شاخه، تغییرات معمولاً با شاخه اصلی یا دیگر شاخهها ادغام میشوند تا پروژه به روز شود.
دستور زیر تمامی برنچهایی که وجود دارند را لیست میکند:
#git branch
برنچی که به رنگ سبز به همراه ستاره نشان داده میشود، به عنوان برنچ فعال شناخته میشود.
برای ساخت یک برنچ جدید از دستور زیر استفاده میکنیم:
#git branch <new_branch_name>
برای رفتن از یک برنچ به برنچ دیگر از دستور checkout استفاده مینماییم:
#git checkout <branch_name>
برای تغییر نام یک برنچ ابتدا با دستور checkout وارد آن شده و سپس از دستور زیر استفاده میکنیم:
#git branch -M main
برای پاک کردن یک برنچ از دستور زیر استفاده میشود:
#git branch -d <branch_name>
کاربرد checkout در ورژن کنترل
در ابتدای بحث توضیح دادیم که گیت نرم افزاری است برای ورژن کنترل و مزیت اصلی آن نیز در همین قابلیت است که به راحتی میتوانید نسخه نرم افزار را عقب و جلو ببرید. پیش از این در رابطه با git reset توضیح دادیم که چگونه به عقب برگردید. اما آن دستور برای پاک کردن بود. ما در حالت عادی ممکن است نخواهیم هر چه که انجام دادهایم را پاک کنیم بلکه تنها بخواهیم به یک یا چند commit قبل برگردیم.
برای انجام این کار دستور git checkout به کمک ما میآید. بعد از این دستور باید شماره کامیتی که میخواهیم به آن برگردیم را وارد نماییم، مانند مثال زیر:
#git checkout 3836e6c5883e2c24fa12ca5244559af0733f9a08
مفهوم Merge در Git
در Git، merge به معنای ترکیب تغییرات از دو یا چند شاخه به یک شاخه است. این یک عملیات معمول در Git است، زیرا اغلب لازم است تغییرات از شاخه های مختلف را به یک شاخه اصلی ترکیب کنید.
برای انجام merge در Git، از دستور git merge
استفاده می شود. این دستور به شما امکان می دهد شاخه ای را که می خواهید با آن merge کنید مشخص کنید. به عنوان مثال، برای merge شاخه feature
با شاخه master
، از دستور زیر استفاده می کنید:
git merge feature
اگر شاخه ها بدون هیچ گونه ناسازگاری ترکیب شوند، Git به سادگی تغییرات را ترکیب می کند و یک commit جدید ایجاد می کند. با این حال، اگر شاخه ها ناسازگاری داشته باشند، Git یک conflict ایجاد می کند. یک conflict زمانی رخ می دهد که دو شاخه تغییراتی را در یک فایل مشترک ایجاد کرده باشند. در این حالت، باید conflict را حل کنید تا بتوانید merge را تکمیل کنید.
برای حل conflict، باید تغییرات هر دو شاخه را در یک فایل واحد ترکیب کنید. سپس، باید تغییرات را ذخیره کنید و دستور git add
را برای فایل اجرا کنید. پس از حل همه conflict ها، می توانید merge را تکمیل کنید.
در اینجا مراحل تکمیل merge با conflict آورده شده است:
- تغییرات هر دو شاخه را در یک فایل واحد ترکیب کنید.
- تغییرات را ذخیره کنید.
- دستور
git add
را برای فایل اجرا کنید. - دستور
git merge --continue
را اجرا کنید.
اگر نمی خواهید conflict را حل کنید، می توانید آن را نادیده بگیرید. برای این کار، دستور git merge --abort
را اجرا کنید.
در اینجا چند نکته برای انجام merge در Git آورده شده است:
- قبل از انجام merge، مطمئن شوید که شاخه های شما به روز هستند.
- اگر شاخه ها ناسازگاری داشته باشند، حتما conflict ها را حل کنید.
- اگر نمی خواهید conflict را حل کنید، می توانید آن را نادیده بگیرید.
Merge یک عملیات قدرتمند در Git است که به شما امکان می دهد تغییرات از دو یا چند شاخه را به یک شاخه ترکیب کنید. با استفاده صحیح از merge، می توانید به راحتی پروژه های خود را مدیریت کنید و تغییرات را به طور کارآمد به اشتراک بگذارید.
مفهوم Remote Repository در Git
در Git، “مخزن از راه دور” یا “Remote Repository” به معنای یک مخزن (repository) Git دیگر است که در جای دیگری نهایتاً در شبکه (معمولاً در یک سرور) قرار دارد و از آنجا میتوانید کدهای منبع (source code) و تاریخچه تغییرات را بارگیری کرده و به آن ارسال کنید. به عبارت دیگر، یک مخزن از راه دور نسخهای از مخزن محلی شما (local repository) در یک مکان دیگر است.
تعدادی از نکات کلیدی در مورد مخزن از راه دور در Git عبارتند از:
۱. مبدأ هماهنگسازی: مخزن از راه دور معمولاً به عنوان مکانی در نظر گرفته میشود که تغییرات شما از مخزن محلی خود به آن ارسال میشود و از آن برای بارگیری تغییرات از دیگران به مخزن محلی شما استفاده میشود.
۲. متعادل نگه داشتن تغییرات: با استفاده از مخزن از راه دور، شما میتوانید تغییرات خود را با تغییرات دیگران در پروژه هماهنگ کنید. این عملیات هماهنگسازی اغلب به وسیله دستورهای `git pull` و `git push` انجام میشود.
۳. مخازن اصلی: معمولاً در پروژهها یک مخزن اصلی (main repository) و یک یا چند مخزن از راه دور (remote repository) وجود دارد. تغییرات به مخزن از راه دور ارسال میشوند و از آنجا توسط دیگر اعضای تیم یا مشارکتکنندگان در پروژه بارگیری میشوند.
۴. نامگذاری راه دورها: هر مخزن از راه دور به عنوان یک نام (معمولاً “origin”) شناخته میشود و این نام به عنوان مخزن اصلی در دستورات Git معرفی میشود. شما میتوانید نامهای دیگری برای مخازن از راه دور ایجاد کنید و از آنها برای هماهنگسازی با مخازن دیگر استفاده کنید.
برای مثال با استفاده از دستور زیر، یک مخزن remote با نام origin در کامپیوتر شما ساخته میشود و از این به بعد دیگر برای استفاده از git pull و git push نیازی به دادن آدرس کامل مخزن خود در گیت لب را ندارید و فقط لازم است به نام مخزن که همان Origin است اشاره کنید.
#git remote add origin https://gitlab.com/acto/web.git