دریافت پروژه و انتقال تغییرات به git
بعد از نصب و راه اندازی git و اعمال تنظیمات اولیه که در مستندهای قبلی بدان اشاره شد شما میبایست بتوانید یک پروژه را دریافت و سپس با اعمال تغییرات به سرور ارسال نمایید.
شما میتوانید با استفاده از قابلیت clone یک پروژه را دریافت نمایید:
$ git clone -b <branch_name> user@taskserver:/opt/git/repository_name.git
$ git remote add origin user1@taskserver:/opt/git/repository_name.git
$ git pull origin <branch_name>
بعد از اینکه پروژه را به اصطلاح clone کردید می بایست دستورات زیر را برای توسعه کد و انتقال آن به سرور اجرا نمایید:
$ cd repository_name
$ git add .
$ git commit -m <Your message: Note: You must not use past verbs in commit message!>
$ git push origin <branch_name>
نکته: هرگر در داخل پوشه کاری خود فایل های اضافی و ایجاد نکنید چرا که این فایل ها همگی به همراه با پروژه به سرور انتقال داده خواهند شد و این قضیه مورد قبول نیست. اگر به ناچار در پروژه فایل هایی دارید و به وجود آن ها نیاز دارید ولی در برنامه استفاده نمیشوند در مسیر ریشه ی پروژه ی خود فایل با نام gitignore. ایجاد کرده و راههای افزودن این نوع فایلهای اضافی را در آن بررسی کرده و به آن اضافه نمایید. تمامی فایلهای pyc و فایل های اضافی تولید شده با ویرایشگر vim یا emacs و... را در این فایل قرار دهید.
برای آگاهی بیشتر از چگونگی نقل و انتقال داده با استفاده از git به این آدرس مراجعه کنید.
حال اگر پروژه را دریافت کردید و به شاخه ی مورد نظر خود switch کردید و هنگام انتقال اطلاعات با مشکل زیر مواجه شدید:
$ git clone -b <branch_name> user@taskserver:/opt/git/repository_name.git
$ cd repository_name
$ git checkout <branch_name>
## Switched to branch_name
## Done some changes
$ git add .
$ git commit -m "Do some changes"
$ git push origin <branch_name>
error: failed to push some refs to [REPOSITORY_ADDRESS] To prevent you from losing history, nonfastforward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.
می بایست از دستور زیر استفاده نمایید:
$ git pull origin <branch_name>
بعد از آن دو مساله ممکن است بوجود بیاید:
۱) git به صورت خودکار تغییرات را برای شما merge میکند و درکد conflict ای بوجود نمی آید:
$ git commit -m "merge"
$ git push origin <branch_name>
۲) بغلت تغییرات در فایل های مشابه git قادر به merge کردن به صورت خودکار نبوده و این کار را می بایست خود شما انجام دهید:
$ git add .
$ git commit -m "merge"
$ git push origin <branch_name>
معمولا برای اینکه متوجه بشوید که باید راه اول یا دوم را بروید از دستور git status استفاده نمایید. اگر تغییرات در staging area بود راه اول و اگر تغییرات در working area بود از راه دوم استفاده نمایید. این مفاهیم در مستندات قبل توضیح داده شده است.
در پایان توصیه میشود حتما به این لینک نگاهی بیاندازید.
اگر خواستید از نوشتن مقاله هاتون درامد کسب کنید بیاید به وبلاگ من و اونجا مقاله هاتون رو بنویسید.ممنون