Clone — دریافت کامل مخزن از گیتهاب
دانلود کامل مخزن با git clone: تاریخچه، شاخهها و تنظیمات — بههمراه گزینههای کاربردی مثل clone سطحی.
git clone چیست؟
git clone یک کپی کامل از مخزن ریموت روی کامپیوتر شما میسازد — شامل همه فایلها، کل تاریخچه کامیتها، همه شاخهها و تنظیمات. بعد از clone، مخزن کاملاً محلی کار میکند (حتی بدون اینترنت!).
کلون کردن یک مخزن
- در گیتهاب، دکمه سبز Code را بزنید
- تب SSH (یا HTTPS) را انتخاب و آدرس را کپی کنید
- در ترمینال:
git clone git@github.com:username/my-project.git
خروجی:
Cloning into "my-project"...
remote: Enumerating objects: 42, done.
Receiving objects: 100% (42/42), done.
Resolving deltas: 100% (18/18), done.
پوشه my-project ساخته شد — واردش شوید و کار کنید:
cd my-project
git log --oneline
# کل تاریخچه همینجاست!
کلون در پوشه با نام دلخواه
git clone git@github.com:username/my-project.git my-folder
مخزن در پوشه my-folder کلون میشود (بهجای my-project).
کلون یک شاخه خاص
git clone -b feature-search git@github.com:username/my-project.git
فقط شاخه feature-search کلون میشود (البته بقیه شاخهها هم در ریموت موجودند).
کلون سطحی (Shallow Clone)
مخازن بزرگ (مثل لینوکس با چند گیگ تاریخچه) را میتوان فقط با آخرین کامیتها کلون کرد:
# فقط آخرین کامیت:
git clone --depth 1 git@github.com:username/big-project.git
# فقط ۵۰ کامیت آخر:
git clone --depth 50 git@github.com:username/big-project.git
خیلی سریعتر و سبکتر — برای دیدن کد عالی، برای توسعه کامل نه.
بعد از clone چه داریم؟
git remote -v
# origin git@github.com:username/my-project.git (fetch)
# origin git@github.com:username/my-project.git (push)
git branch -a
# * main
# remotes/origin/main
# remotes/origin/feature-search
- ریموت
originخودکار تنظیم شده - شاخه فعلی: main (و به origin/main وصل است)
- همه شاخههای ریموت موجودند — با
git switchبه آنها بروید
clone از کجا؟
| منبع | مثال |
|---|---|
| گیتهاب (SSH) | git@github.com:user/repo.git |
| گیتهاب (HTTPS) | https://github.com/user/repo.git |
| گیتلب | git@gitlab.com:user/repo.git |
| سرور محلی/شبکه | git@192.168.1.10:/path/repo.git |
| پوشه محلی | git clone /path/to/repo |
init یا clone؟
| git init | git clone |
|---|---|
| پروژه جدید از صفر | پروژه موجود را دریافت میکنید |
| تاریخچه خالی شروع میشود | کل تاریخچه کپی میشود |
| ریموت ندارید (بعداً add کنید) | ریموت origin آماده است |
خلاصه
git clone <آدرس>کپی کامل: فایلها + تاریخچه + شاخهها- ریموت origin و tracking خودکار تنظیم میشوند
-bشاخه خاص؛--depthکلون سبک- بعد از clone، همهچیز محلی است — اینترنت لازم نیست!
این مبحث بخشی از دوره آموزش کامل Git است.