اتصال مخزن محلی به گیتهاب — git remote
اتصال مخزن محلی به مخزن گیتهاب با git remote add، مفهوم origin و مدیریت ریموتها.
Remote چیست؟
Remote (ریموت یا راهور) نسخهای از مخزن شماست که روی یک سرور (مثل گیتهاب) قرار دارد. مخزن محلی شما میتواند به چند ریموت متصل باشد و با آنها همگام شود.
سناریو: پروژه محلی داریم
فرض کنید پروژهای دارید که با git init شروع شده و چند کامیت هم دارد. حالا میخواهید آن را به گیتهاب ببرید:
- در گیتهاب مخزن جدیدی بسازید (مبحث ۱۸) — بدون README تا تعارض نشود
- آدرس SSH آن را بردارید:
git@github.com:username/my-project.git - در ترمینال، وارد پوشه پروژه محلی شوید
افزودن ریموت
git remote add origin git@github.com:username/my-project.git
تفکیک دستور:
| بخش | معنی |
|---|---|
git remote add | افزودن یک ریموت جدید |
origin | نام ریموت (قراردادی — میتوانید هر نامی بگذارید) |
git@github.com:... | آدرس مخزن ریموت |
origin چیست؟
origin فقط یک نام قراردادی برای ریموت اصلی است — مثل اینکه به مخزن گیتهابتان «origin» (مبدأ) لقب میدهید. بعداً وقتی میگویید git push origin main یعنی: «main را به ریموتی که origin نامیدهام بفرست».
مدیریت ریموتها
# لیست ریموتها:
git remote
# origin
# لیست با آدرسها:
git remote -v
# origin git@github.com:username/my-project.git (fetch)
# origin git@github.com:username/my-project.git (push)
# دیدن جزئیات یک ریموت:
git remote show origin
# تغییر نام ریموت:
git remote rename origin github
# حذف ریموت:
git remote remove origin
تغییر آدرس ریموت
اگر آدرس عوض شد (مثلاً از HTTPS به SSH میروید):
git remote set-url origin git@github.com:username/my-project.git
اولین push
بعد از افزودن ریموت، مخزن محلی را برای اولین بار بفرستید:
git push -u origin main
-u(upstream) یعنی: «شاخه main محلی را به main ریموت وصل کن و یادت بمان»- از دفعه بعد فقط
git pushکافی است!
git branch -M main سپس push کنید.چند ریموت داشتن (پیشرفته)
گاهی پروژهای روی دو سرویس هست (مثلاً گیتهاب و گیتلب):
git remote add github git@github.com:user/repo.git
git remote add gitlab git@gitlab.com:user/repo.git
# حالا میتوانید به هرکدام push کنید:
git push github main
git push gitlab main
خلاصه
- ریموت = نسخه سروری مخزن شما
git remote add origin <آدرس>اتصال میدهدgit remote -vلیست ریموتهاgit push -u origin mainاولین ارسال + اتصال شاخهها
این مبحث بخشی از دوره آموزش کامل Git است.