سلام
اخیراً داریم به همراه دوستای خوبم یه پروژهای رو ران میکنیم که تا حالا اسمش کادوپیچ رو گذاشتیم روش (که صد البته قراره عوض بشه اسمش )
توی این پروژه ، لازم بود که روی دوتا ریپوزیتوری یا مخزن گیت همزمان sync (همگام سازی) باشیم(اگه نمیدونین گیت چی هست ویکیپدیا بهترین جاست برای اینکه بفهمین گیت چی هست و VCS ها چیا هستن ).یه مخزن برای دیپلوی کردن روی Heroku و مخزن دیگه روی گیتلب برای مدیریت دستهجمعی کدهای پروژه و کدهایی که اعضای تیم مینویسن و …
کاری که باید میکردم من این بود که با هربار push کردن ، روی هردوتا سرور اطلاعات push میشد.(اگه کارکردن با گیت رو بلد نیستین پیشنهاد میکنم حتما یکی دوروز روش وقت بزارین تا یادش بگیرین.خیلی خیلی باحاله 🙂 )
با یکم سرچ به این وبلاگ رسیدم که مطلب خوبی در این مورد نوشته بود که منم بد ندیدم بیام و اون مطلب رو با زبون فارسی دوباره منتشرش کنم 🙂
قبل از هرکاری باید بگم که اسم مخزن رو با عبارت PROJECT تعویض کردم.موقع استفاده یادتون باشه که اسمها رو درست کنین 🙂
اول از همه توی دایرکتوری پروژه کافیه عبارت زیر رو وارد کنین و خروجیش رو ببینین.
۱ ۲ ۳ | $ git remote -v show origin https://git.heroku.com/PROJECT.git (fetch) origin https://git.heroku.com/PROJECT.git (push) |
که خط اول دستوری هست که من توی Terminal وارد کردم و دو خط بعدی خروجی دستور هست
دایرکتوری PROJECT/.git/config هم اطلاعات مشابهی رو نشونم میداد
۱ ۲ ۳ | [remote "origin"] url = https://git.heroku.com/PROJECT.git fetch = +refs/heads/*:refs/remotes/origin/* |
حالا با زدن دستور زیر به راحتی میتونم مخزن گیتلب رو اضافه کنم و دیتام رو به راحتی هم به heroku و هم به گیتلب push کنم
۱ | $ git remote set-url origin --add git@gitlab.com:Numb95/PROJECT.git |
خروجی این دستور رو هم میبینیم
۱ ۲ ۳ ۴ | $ git remote -v show origin https://git.heroku.com/PROJECT.git (fetch) origin https://git.heroku.com/PROJECT.git (push) origin git@gitlab.com:Numb95/PROJECT.git (push) |
همم همه چیز به نظر اوکی هست منتها یه ایرادی هست
نمیتونم چیزی رو از گیتلب بگیرم 🙁
یعنی نمیتونم pull کنم
خب حالا باید چیکار کنم ؟
همم باید اطلاعات هردوتا ریموت سرور رو اضافه کنم
چجوری ؟
اینجوری :
۱ ۲ | $ git remote add gitlab git@gitlab.com:Numb95/PROJECT.git $ git remote add heroku https://git.heroku.com/PROJECT.git |
با بررسی خروجی دستور زیر باید دید همهچیز درست شده یا نه
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ | $ git remote -v show gitlab git@gitlab.com:Numb95/PROJECT.git (fetch) gitlab git@gitlab.com:Numb95/PROJECT.git (push) heroku https://git.heroku.com/PROJECT.git (fetch) heroku https://git.heroku.com/PROJECT.git (push) origin https://git.heroku.com/PROJECT.git (fetch) origin https://git.heroku.com/PROJECT.git (push) origin git@gitlab.com:Numb95/PROJECT.git (push) |
به نظر همه چیز درسته 🙂
بهتره فایل config توی PROJECT/.git/config رو هم بررسی کنیم :
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ | [remote "origin"] url = https://git.heroku.com/PROJECT.git fetch = +refs/heads/*:refs/remotes/origin/* url = git@gitlab.com:Numb95/PROJECT.git [branch "master"] [branch "master"] remote = origin merge = refs/heads/master [remote "gitlab"] url = git@gitlab.com:Numb95/PROJECT.git fetch = +refs/heads/*:refs/remotes/gitlab/* [remote "heroku"] url = https://git.heroku.com/PROJECT.git fetch = +refs/heads/*:refs/remotes/heroku/* |
خب این فایل هم درست داره کار میکنه
بعد از pull کردن هم به هیچ مشکلی برنخوردم
خداروشکر همه چیز درسته 🙂
همین:)