یکشنبه , اسفند ۵ ۱۳۹۷
خانه / GIT / نکات استفاده از Git
نکات استفاده از Git - آموزش Git - آموزش گیت

نکات استفاده از Git

نکات استفاده از Git

1- همیشه هنگام نامگذاری انشعاب(Branch) از عناوین کوتاه و توصیفی استفاده کنید و درصورت لزوم از خط فاصله – برای جداسازی آیتم ها کمک بگیرید.

مثال: feature-logsystem, release-2.0.4a, hotfix-3.0.2-12, stable-1.0
نکته: می تونید از اسلش / هم استفاده کنید اما هنگام بکار گرفتن بعضی سرویس ها(CI) و rename کردن با دردسر مواجه میشید.

2- اگر بیش از 1 نفر بر روی یک feature مشابه کار می کنند، برای تفکیک بهتر هر Branch باید از نام افراد در کنار نام feature مورد نظر استفاده بشه.
مثال: feature-logger-ahmad, feature-logger-ali, feature-logger-mina

3- نام Branch “نباید” حاوی کاراکترهای ^ .. ~ \ : باشه.

4- همیشه برای گروه بندی Branch ها از عناوین همگانی مثل develop, feature, hotfix, poc, master/mainline, junk استفاده کنید.

5- همیشه Git رو برای push کردن Branch جاری/current تنظیم سراسری(default) کنید. تا به اشتباه Branch دیگر رو برای server ارسال نکنید:

git config —global push.default current

6- دلیل خطای warning: remote HEAD refers to nonexistent ref, unable to checkout، نداشتن Branch master در مخزنی هست که قراره checkout ش کنید… پس باید نام یک Branch رو دقیقاً ذکر کنید:

git checkout MyBranchName

7- اصولاً هر commit باید حاوی “یک تغییر منطقی” باشه. نه اینکه چند تغییر در انواع مختلف انجام بگیره و همه در یک commit ثبت بشه!

8- هر یک fix یا add یا remove یا improvment باید فقط در یک commit ثبت بشه.

9- یک تغییر منطقی یا یک feature جدید رو باید فقط در یک commit ثبت کنید.

10- طول پیامهای commit رو کوتاه و حداکثر در 50 کاراکتر در هر خط بنویسید.

11- در پیام commit از واژه های Remove, Update, Fix, Add استفاده کنید و نه Fixed Added Removed و…
مثال: Fix bug #2, Add README, Remove pom.xml, Fix #23, Fix #552

12- هنگام نوشتن پیامهای طولانی برای commit، باید عنوان پیام رو از بدنه پیام با یک پاراگراف خالی جدا کنید.

13- هنگام merge Branch، اگر در اون Branchبیشتر از یک commit وجود داره، اون رو توسط پارامتر —no-ff الحاق/merge کنید. با اینکار history Branchو ساختارش هم حفظ میشه:

git merge —no-ff <branch-name>

یا برای همیشه سراسری تنظیمش کنید:

git config —add merge.ff false

14- همیشه قبل از اینکه push کنید، کدها رو کامل تست کنید تا عاری از خطا و مشکل باشن!

15- توجه داشته باشید که HEAD با deattached HEAD با ORIG_HEAD متفاوته!

درواقع HEAD یک reference ای به آخرین commit در Branch جاری(checkout شده) هستش. deattached HEAD یک reference ای به یک commit خاص یا Tag هستش که معمولاً هم استفاده نمیشه. و ORIG_HEAD بک آپ رفرنسی به HEAD قبل از تغییرات هستش.

16- هرگز از پروتکل HTTP استفاده نکنید! این پروتکل بخاطر برخی کمبود ها و ضعفهای امنیتی تقریباً منسوخ شده و هیچ سروری ازش استفاده نمی کنه و خود تیم Git هم ردش میکنه.

17- مطمعن بشید که name و email شما در فایل gitconfig موجود در دایرکتوری USER درج شده باشه.
برای اینکار می تونید دستورات زیر در کنسول سیستم وارد کنید:

git config —global user.name "YOUR FULL NAME"
git config —global user.email "YOUR-EMAIL-ADDRESS"

18- نکته جزیی: توسط فایل .gitignore میتونید به Git اعلام کنید که چه فایلهایی رو هنگام fetch, pull, push, commit نادیده بگیره.

19- برای حذف Branch های local که دیگر در remote موجود نیستند، یکی از روش های زیر رو دنبال کنید:

یکبار دستور git config —global fetch.prune true رو در کنسول بزنید تا همیشه بصورت خودکار انجام بشه.

نکته: این قابلیت با هربار انجام fetch یا pull فعال می شه.

یا هر زمان که لازم بود دستور git remote prune origin رو بزنید.

20- نکته جزیی: Fork همون Clone هستش، منتها بدلیل اینکه داخل سرور و بواسطه وب در اکانت شما انجام میگیره، تغییر واژه داده… درواقع با انجام Fork، یک Clone از پروژه با تمام دسترسی هاش در سرور در اختیار شما قرار میگیره.

21- هنگام ساخت SSh key برای Git، یادتون باشه فایل id_rsa.pub، فایل کلید عمومی هست. یعنی این کلید رو در سرور/remote ای که قراره بهش متصل بشید آپلود میکنید (که به شما گفته میشه کجا و چگونه). اما فایل id_rsa، فایل کلید خصوصی هست. پس این فایل باید در کامپیوتر شما بمونه!

22- ویندوز: در صورت بروز خطای gpg: cannot open tty ‘no tty’: No such file or directory هنگام استفاد از برنامه Git-GUI بهمراه GPG، بدونید که TTY سیستم توسط Git-GUI اشغال شده و GPG قادر به ارسال فرمان به TTY نیست… باید از Git-BASh استفاده کنید.

23- دستور git pull در واقع ترکیبی از دستور git fetch و git merge هستش. به اینصورت که ابتدا دستور git fetch اجرا میشه، سپس رفرنس FETCH_HEAD بروز میشه و نهایتاً دستور git merge FETCH_HEAD اجرا میشه.

نکته: FETCH_HEAD رفرنسی به آخرین Branch remote ای هست که fetch شده. MERGE_HEAD رفرنسی به commit/commit ها ای هستش که با Branch جاری(checkout شده) merge شده.

  • آیا این مقاله مفید بود؟
  • بله   خیر

با تمام وجود علاقمندم مباحث جدید مربوط به برنامه نویسی رو یاد بگیرم و به دیگران یاد بدم. نیمی از زمان روزانه رو صرف یادگیری میکنم. سعی میکنم مقالات مفید و جدید در حوزه برنامه نویسی و به ویژه جاوا اسکریپت رو برای شما دوستان عزیز در لایو گوگل منتشر کنم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.