logo

بهترین ها همه در یک جا

مطالب آموزشی

آشنایی با دستورات Git

اشتراک گذاری :

منظور از master  در کدهای زیر برنچ اصلی ما است و در پروژه شما ممکن است نام دیگری داشته باشد.

برای شروع

git init
بردن قسمتی از کد یا همه کد به وضعیت stage . اگر بخواهیم چند تا فایل رو add کنیم با فاصله در کنار هم مینویسیم.
git add filename.extension
or
git add -A
آخرین وضعیت جاری توسط Head مشخص میشود .

git diff Head

گرفتن وضعیت جاری

git status
برای بیرون آوردن از staging
git reset page.html
or 
git reset
برای ثبت نهایی کد
git commit -m "your comment"
برای دیدن branch ها
git branch
ساخت branch
git branch branchname

or

git checkout -b branchname
رفتن به branch
git checkout branchname
پاک کردن فایل
git rm filename.ext
پاک کردن branch
git branch -d branchname

به دست آوردن نام برنچ جاری

git branch --show
merge کردن از یک branch با branch دیگر
1- به branch مقصد میریم
2- merge میکنیم
git checkout master (this is destination)
git merge branchname (this is source)
or
git merge origin/master

در بالا برنچ اصلی رو از یک برنچ فرعی به روز رسانی کردیم.

به عنوان  یک مثال دیگر برای به روز رسانی برنچ فرعی از اصلی:

برنچ اصلی ما release و برنچ فرعی ما dev است و میخواهیم dev را با آخرین تغییرات برنچ اصلی به روز رسانی کنیم .

git checkout release
git pull
git checkout dev
git merge release

الان dev آخرین تغییرات release رو داره.


معرفی کردن مقصد remote
push کردن کد از master به origin در remote
git push origin master
گرفتن کد از origin  به master
git pull origin master
اطلاعات تکمیلی از remote
git remote -v
تگ زدن
git tag -a v2.0 -m "your message"
درست کردن comment اخرین commit
git commit --amend -m "Your new commit message"
باز گشت به یک commit قبلی
git reset Head~1
برای undo کردن عمل بالا 
git reset 'HEAD@{1}'
بعد  از git pull کردن دو عمل رخ میدهد
  1. git fetch
  2. git merge
برای پاک کردن تغییرات uncommitted از دستور زیر استفاده میشود
git reset --hard
در هنگام دریافت اطلاعات از سرور ممکنه ورژن شما با سرور متفاوت باشه و ارور زیر رو بگیرید.
error: Your local changes to the following files would be overwritten by merge:

برای حل اون اگه میخواهید ورژن سرور رو بگیرید و اطلاعات کامیت نشده خودتون در نظر گرفته نشه
git stash push --include-untracked
و  بعد git pull زده میشه .
زمانی که تغییرات ما با تغییرات در سرور متفاوت است و میخواهیم تغییرات ما برای اعمال force شود .
git push -f origin master

که البته اون برنچی که هستیم نباید protect باشه که اگه باشه ارور میگیریم و باید از توی خود گیت لب از setting از repository از protected branch مدیریت شه .

برای دریافت یک نسخه خاص از گیت لب یا گیتهاب ابتدا آخرین نسخه را clone میکنیم بعد به صورت لوکال به ورژن مورد نظر ریست میکنیم (برمیگردیم) . (با استفاده از هش کدی که برای ما در گیتلب یا گیتهاب گداشته شده)
git clone [remote_address_here] my_repo
cd my_repo
git reset --hard [ENTER HERE THE COMMIT HASH YOU WANT]

برنامه نویسی آموزش
avatar

برنامه نویس و توسعه دهنده ارشد وب
کارشناس ارشد مدیریت فناوری اطلاعات