نحوه کلون کردن یک مخزن در گیت #
کلون کردن یک مخزن، یک دستور اساسی گیت است که یک کپی محلی از یک مخزن راه دور روی دستگاه شما ایجاد میکند. این به شما امکان میدهد تا به صورت آفلاین روی پروژه کار کنید، تغییرات ایجاد کنید و بدون تأثیر بر منبع تا زمانی که آماده باشید، مشارکت کنید. در حالی که forking نیز یک کپی ایجاد میکند، fork یک مخزن جداگانه است که تحت حساب شما میزبانی میشود، در حالی که clone یک کپی کاری محلی است که به مخزن راه دور اصلی متصل میماند.
این مقاله نحوه git cloneایجاد یک کپی محلی از یک مخزن، کلون کردن در یک پوشه خاص، کلون کردن یک برچسب نسخه خاص و کار با یک مخزن انشعاب یافته را توضیح میدهد.
پاسخ خلاصه #
اگر از قبل با گیت آشنا هستید و به دستورات مرجع سریع برای کلون کردن مخازن راه دور نیاز دارید، این دستورات عبارتند از:
# Clone a repository into a directory of the same name
$ git clone <repository-url>
# Clone a repository into a specific custom folder
$ git clone <repository-url> <folder-name>
# Clone a specific tag or branch instead of the default
$ git clone --branch <tag-name> <repository-url>
# Create a shallow clone with only the latest commit
$ git clone --depth 1 <repository-url>کلون کردن در یک پوشه خاص #
به طور پیشفرض، git cloneیک دایرکتوری با همان نام مخزن ایجاد میکند. شما میتوانید با ارائه نام دایرکتوری هدف، این را لغو کنید، که به سازماندهی فضای کاری محلی شما کمک میکند.
سینتکس دستور #
git clone [OPTIONS] <repository-url> <target-directory><repository-url>: آدرس اینترنتی HTTPS یا SSH مخزن راه دور.<target-directory>: نام پوشه محلی که مخزن در آن کپی خواهد شد. اگر این پوشه وجود نداشته باشد، گیت آن را ایجاد میکند.[OPTIONS]سوئیچهای اختیاری که کلون را به طور دقیق تنظیم میکنند:--branch <name>بعد از کلون کردن، یک شاخه یا برچسب خاص را بررسی کنید.--depth <n>یک کلون کمعمق ایجاد کنید که فقط جدیدترین کامیتها را ذخیره کند و حجم دانلود را کاهش دهد.-o <name>به جای نام پیشفرض، یک نام دلخواه به ریموت اختصاص دهیدorigin.
نمایش فرمان #
- یک مخزن را در یک پوشه سفارشی کلون کنید.
<desired-folder>نام پوشه مورد نظر خود را جایگزین کنید.کنسول$ git clone https://github.com/username/project.git <desired-folder>دستور بالا مخزن را از URL مشخص شده کپی کرده و آن را در یک پوشه جدید قرار میدهد.
- یک شاخه یا تگ خاص را فوراً کلون و بررسی کنید. مقادیر خودتان را
<branch-or-tag>جایگزین کنید.<desired-folder>کنسول$ git clone --branch <branch-or-tag> https://github.com/username/project.git <desired-folder>--branch <branch-or-tag>به جای شاخه پیشفرض، دایرکتوری کاری شما را به آن شاخه یا تگ ارجاع میدهد.<desired-folder>میتواند یک مسیر مطلق یا نسبی از پوشه مقصد باشد.
- یک کلون کوچک ایجاد کنید.کنسول
$ git clone --depth ۱ https://github.com/username/project.git <desired-folder>
--depth 1فقط جدیدترین کامیت قابل دسترسی از شاخه پیشفرض (یا شاخهای که توسط مشخص شده است--branch) را دانلود میکند و در زمان و پهنای باند صرفهجویی میکند.
کلون کردن یک تگ خاص #
تگها در گیت، نقاط انتشار خاصی را مشخص میکنند، مانند v1.0.0. میتوانید یک تگ خاص را کپی کنید تا کد دقیق یک نسخه خاص را دریافت کنید، که برای آزمایش یا استقرار یک نسخه پایدار ایدهآل است.
سینتکس دستور #
git clone --branch <tag-name> <repository-url>--branch <tag-name>یا-b <tag-name>: این پرچم به گیت میگوید که به جای شاخه پیشفرض مخزن، یک تگ (یا شاخه) خاص را بررسی کند.
نمایش فرمان #
v1.2.0تگ را از یک مخزن کپی کنید .کنسول$ git clone --branch v1.2.0 https://github.com/username/project.gitاین دستور مخزن را کلون میکند و کامیت خاص مرتبط با
v1.2.0تگ را بررسی میکند.- به دایرکتوری بروید و وضعیت را بررسی کنید.کنسول
$ cd project $ git status
خروجی:
Not currently on any branch ...خروجی نشان میدهد که شما در هیچ شاخهای نیستید، به این معنی که
HEADدر حالت جدا قرار دارید – مستقیماً به کامیت مرتبط با تگ اشاره میکند، نه به یک شاخه. - اگر نیاز به ایجاد تغییرات بر اساس این نسخه دارید، یک شاخه جدید از تگ ایجاد کنید.کنسول
$ git switch -c new-feature-from-v1.2.0دستور بالا یک شاخه جدید ایجاد میکند و از
HEADحالت جدا شده به آن سوئیچ میکند و به شما امکان میدهد کار خود را کامیت کنید.
کلون کردن یک Fork از گیتهاب #
فورک کردن در گیتهاب یک کپی شخصی از مخزن به شما میدهد و به شما امکان میدهد بدون تأثیر بر پروژه اصلی، آزمایش کنید. کلون کردن آن فورک، کد را به دستگاه محلی شما میآورد تا بتوانید هر زمان که آماده بودید، توسعه دهید، کامیت کنید، ارسال کنید و سپس یک درخواست pull باز کنید.
نمایش فرمان #
- برای فورک کردن یک مخزن، URL مخزن را در مرورگر باز کنید و روی Fork کلیک کنید تا یک کپی در حساب GitHub شما ایجاد شود.
- مخزن انشعاب یافته خود را روی دستگاه محلی خود کلون کنید.کنسول
$ git clone https://github.com/username/forked-project.gitآدرس مخزن بالا را با آدرس مخزن فورک شده خود جایگزین کنید.
- به دایرکتوری کلون شده بروید و موارد را فهرست کنید.کنسول
$ cd forked-project $ ls
دستور بالا تمام فایلها و پوشههای موجود در پروژهی فورک شده را فهرست میکند.
پیکربندی ریموتها برای همگامسازی با Upstream #
برای اینکه شاخهی خود را با آخرین تغییرات پروژهی اصلی بهروز نگه دارید، باید یک ریموت دوم با نام قراردادی پیکربندی کنید upstream.
- مخزن اصلی را به عنوان
upstreamریموت اضافه کنید.کنسول$ git remote add upstream https://github.com/org-name/ori-project.gitاین دستور اتصالی به مخزن اصلی برقرار میکند که اکنون میتوانید با نام مستعار به آن مراجعه کنید
upstream. - تأیید کنید که هر دو
origin(چنگال شما) وupstreamمطابق انتظار پیکربندی شدهاند.کنسول$ git remote -vخروجی:
origin https://github.com/username/project.git (fetch) origin https://github.com/username/project.git (push) upstream https://github.com/org-name/ori-project.git (fetch) upstream https://github.com/org-name/ori-project.git (push)خروجی هر دو ریموت را نشان میدهد و تأیید میکند که هر دو
origin(چنگال شما) وupstream(اصلی) پیکربندی شدهاند. - برای بهروزرسانی شاخه خود با تغییرات از پروژه اصلی، تغییرات را از شاخه محلی خود دریافت کنید
upstreamوmergeیا به آن منتقل کنید.rebaseکنسول$ git fetch upstream $ git rebase upstream/main
این دستورات مخزن محلی شما را با آخرین تغییرات
upstreamپروژه اصلی همگامسازی میکنند و تضمین میکنند که نسخه جدید شما از بقیه عقب نمیماند.
نتیجه گیری #
در این مقاله، یاد گرفتید که چگونه از آن git cloneبرای ایجاد یک کپی محلی از یک مخزن استفاده کنید. اکنون میدانید که چگونه در یک دایرکتوری خاص کلون کنید، یک برچسب انتشار خاص را بررسی کنید و با پیکربندی یک upstreamریموت برای همگامسازی تغییرات، یک مخزن انشعاب یافته را مدیریت کنید. این مهارتها برای همکاری در پروژهها و مدیریت مؤثر نسخههای مختلف کد شما ضروری هستند. برای اطلاعات بیشتر، به مستندات رسمی Git در مورد کلونینگ مراجعه کنید.