GIT

نکات:

  • محیط استیج یعنی وضعیت آماده کامیت کردن

  • هد یکی از کامیت‌ها یا تغییرات پایداری است که در یک شاخه وجود دارد. معمولا آخرین کامییتی است که کرده ایم
  • نمایش تغییرات بر اساس برنامه diff -u انجام می‌گیرد.
  • اول همه فایل‌های untracked هستند یعنی گیت مواظب آنها نیست و بعد آن را add می‌کنیم و در اینصورت گیت آنها را میفهمد و مواظبت می‌کند یعنی میروند در محیط stage و بعدا آن را کامیت می‌کنیم و با این کار به محیط پایدار خواهند رسید
  • وقتی از یک سایتی یک پروژه راکلون می‌کنیم اسم کامیت پایدار (معمولا HEAD) آن پروژه را می‌گذاریم origin و همچنان اسم آخرین نسخه پایدار سیستم خودم هم master خواهد بود

دستورات:

  • ساختن یک پروژه گیت خالی که یک فولدر مخفی ایجاد می‌کند
$ git init
  • نمایش وضعیت فایل‌های موجود در پوشه ای که گیت آن پوشه را در اختیار گرفته است:
$ git status
    • افزودن یک تغییر در استیج :
    $ git add <File>
      • افزودن یک تغییر در استیج:
      $ git add -A
      • انتقال تغییرات از استیج به کامیت:
      $ git commit -m "message"    
      • مشاهده کارهایی که کردید
      $ git log --stat --summary
      • مشاهده کارهایی که کردید با تفاوت دیف‌ها
      $ 111git log -p
      •  نمایش تغییرات کنونی با تغییرات هِد
      $ 111git diff HEAD 
      • فایل‌های محیط استیج چه تغییراتی داشته اند.-تفاوت هد و استیج را نشان می‌دهد
      $ git diff --staged
      $ git diff --color
      •  یک فایل را از استیج  بیرون بیاور
      $ git reset file
      • بازگشت به آخرین تغییرات در آن فایل-با این کار فایل اصلی که در هد است جایگزین فایلی می‌شود که در آن تغییرات اشتباه داده بودید
      $ git checkout -- <FILE>
      • نمایش تمامی برنچ‌های موجود
      $ git branch
      • ساختن یک برنج جدید
      $ git branch <Name>
      • رفتن به برنچ دیگر(بکش بیرون اون رو)
      $ git checkout  <branchName>
      • تنها مشاهده تغییرات سرور آنلاین(ریموت)- نکته: تغییرات به لوکال منتقل نمی‌شود
      $ git fetch origin
      • پس از اینکه با دستور fetch‌ صحت تغییرات مخزن آنلاین را مشاهده کردیم،‌ آن را با دستور زیر از مخزن آنلاین  به لوکال منتقل می‌کنیم.(حتما باید نام برنج آورده بشود)
      $ git merge origin/master
      • برنجی که هِد در آن است را با برنج ذکر شده یکی می‌کند
      $ git merge <branchName>
      
      • پاک کردن یک فایل از گیت و فایل‌سیستم
      $ git rm <file>
      • حذف فایل stage شده موجود و تبدیل به unstage
      $ git rm --cached <FileNames>
      • حذف فولدر  stage شده موجود و تبدیل به unstage
      $ git rm --cached -r <FOLDER>
      • پاک کردن یک برنچ
      $ git branch -d <BranchName> 
      • کلون کردن یک پروژه در سیستم خود
      $ git clone <URL.git>
      • پروژه ای که از سایت گرفتم را تغییر دادم. این تغییرات در شاخه مَستر سیستم خودم انجام گرفته است. اگر بخواهم این تغییرات را در برنچ اصلی سایت قرار بدهم باید از این دستور کمک بگیرم
      $ git push origin master
      • آخرین تغییراتی که در سایت وجود دارد که با نام اوریجین شناخته می‌شود را  بگیرد و در شاخه مَستر سیستم خودم اَعمال کن
      $ git pull origin master 
      • وضعیت را در سرور گیت نشان میدهد=============>باید بررسی شود
      $ git remote 
      • از پروژه فعلی یک ریپوزیتوری در سرور ایجاد کن و اسم آن را بگذار اوریجین و آدرس آن را هم باید ادمین سرور گیت به ما بدهد
      $ git remote add  origin  URL 
      • تغییرات مستر را به شاخه اوریجین که  در  سرور است اضافه کن
      $ git push origin master 
      • نشان دادن تغییرات یک کامیت
      $ git show <Hash Of Commit>
      • نمایش جزییات یک تگ که بعنوان ورژن شناخته می‌شود
      $ git shwo <tag name>
      • نکته: tag می‌تواند به ما بگوید که کدام کامیت است که قابلیت ارائه به مشتری را دارد. یعنی مدیر پروژه در ذهن خودش حفظ نکند که کدام ورژن شماره یک است و کدام شماره نسخه دوم از برنامه است. معمولا شرکت‌ها برای اینکه یک release از محصول بدهند در کامیت مطلوب یک تگ میزنند که تحت عنوان ورژن شماره خاص از محصول شناخته بشود.
      • نکته: تگ بر روی کامیت زده می‌شود
      • نمایش تگ‌ها
      $ git tag
      • زدن تک به آخرین کامیت    
      $ git tag -a v2.0.1 -m " توضیحات در باره این تگ"
      • به یک کامیت قدیمی یک تگ اختصاص دادیم
      $ git tag -a v1.3.9 <Hash Of custom commit> -m "توضیحات درباره تک"
      • نمایش تمام تگ‌هایی که در اول آن کاراکتر "وی" قرار دارد
      $ git tag -l "v*"
      • نکته: اگر تغییر از نوع ایجاد تگ باشد، گیت آن را نمی‌فهمد. یعنی دستور git status ایجاد تگ را گزارش نمی‌دهد.(در نتیجه در دستور پوش هم چیزی به سرور اضافه نخواهد شد)
      • تگ مورد نظر را به شاخه اوریجین در سرور اضافه  کند
      $ git push origin <TagName>
      • تگ‌ها را به شاخه اوریجین در سرور گیت اضافه کن
      $ git push origin --tags
      • رفتن به یک تگ(یعنی کامیتی که در آن تگ زده شده) در پروژه
      $ git checkout <Tag name>
      • نکته: اگر به یک تگ checkout کردیم برای ایجاد تغییرات باید یک برنچ ایجاد نماییم و تغییرات را به آن اعمال نماییم.
      • نمایش نام کاربری گیت
      $ git config --global user.name
      • تاریخچه تغییرات فایل را نشان می‌دهد
      $ git blame <FileName>
      • تاریخچه تغییرات لاین هشتم از فایل را نشان می‌دهد
      $ git blame <FileName> -L8
      • تاریخچه تغییرات لاین هشتم تا لاین دهم  از فایل را نشان می‌دهد(نفر آخری که تغییرات را ایجاد کرده است)در پروژه
      $ git blame <FileName> -L8,10
      • نکته: وقتی یک باگ در یک فایل پیدا می‌کنیم git blame اجازه می‌دهد که آن را گردن یکی بیاندازید.
      • برخی تنظیمات
      $ git config --global user.name "Your Full Name"
      $ git config --global user.email you@somewhere.com
      • بازگشت به آخرین کامیت(اگر استیج نشده باشد یعنی دستور اَد زده نشده باشد)
      $ git checkout -- filename
      • بازگشت به آخرین کامیت درصورتی که دستور اَد زده شده باشد
      $ git reset HEAD filename
      •  

        مشخصات

        آخرین ارسال ها

        آخرین جستجو ها