۹ نکته برای git

ترجمه و تالیف : پوریا رزمجویی
تاریخ انتشار : 28 مرداد 99
خواندن در 2 دقیقه
دسته بندی ها : برنامه نویسی

اگر هر روز از Git استفاده می‌کنید، می‌دانید که این ابزار مملو از فرمان‌ها و گزینه‌های مختلف پیکربندی است. من به شما پیشنهاد می‌کنم تا به این چند نکاتی که استفاده می‌کنم و در ادامه ذکر کرده‌ام نگاهی بیندازید.

۱. نام کاربری و ایمیل خود را کانفیگ کنید

$ git config --global user.name "Darth Vader"
$ git config --global user.email "darth-vader@deathstar.space"

من به طور داوطلبانه از قسمت ساده شروع می‌کنم، اما این دستکاری است که اغلب برایم اتفاق می‌افتد، از رایانه‌ی من برای مدیریت چندین پروژه با هویت‌های مختلف استفاده می‌شود. بنابراین اگر اطلاعات مختلفی برای یک پروژه دارید، می‌توانید این تعریف را در سطح پروژه خود رد کنید.

$ cd ~/dev/my_project
$ git config user.name "Luke Skywalker"
$ git config user.email "luke-skywalker@jedi.force"

۲. برخی از فایل‌ها را در سطح global نادیده بگیرید

توصیه می کنم که یک فایل .gitignore را در سطح global برای محیط توسعه‌ی خود تنظیم کنید تا فایل‌های مربوط به روش کار خود را نادیده بگیرید (برای مثال از IDE استفاده شد).

با این کار از یافتن همه‌ی IDEها در فایل‌های .gitignore پروژه‌های شما جلوگیری می‌شود.

$ vi ~/.gitignore

به عنوان مثال با دایرکتوری PHPStorm یا Intellij

.idea

کانفیگ کردن git

$ git config --global core.excludesfile ~/.gitignore

برای پیدا کردن مجموعه‌ای از قالب‌های فایل gitignore، روی لینک زیر کلیک کنید:

https://github.com/github/gitignore

۳. commit editor را انتخاب کنید

اگر نمی‌خواهید از vi استفاده کنید، از git بخواهید که از editor دیگری برای commitهای خود استفاده کند!

# With nano
$ git config --global core.editor nano

# You can also choose a graphical editor
# Visual Studio Code
$ git config --global core.editor "code --wait"

# Sublime text
$ git config --global core.editor "subl -n -w"

# Atom
$ git config --global core.editor "atom --wait"

۴. فرمت نمایش log پیش‌فرض را تغییر دهید

اگر فرمت فرمان git log مناسب شما نیست، می‌توانید آن را تغییر داده یا یک نوع دلخواه را تعریف کنید.

چندین فرمت از پیش تعریف شده وجود دارد: oneline، short، medium، full، fuller، reference، email، raw.

# One line display by default
$ git config --global format.pretty oneline

# You can also define your own log display format
$ git config --global format.pretty "format:%h%x09%an"

# And save it
$ git config --global pretty.my-custom-log-format "format:%h%x09%an"


# Which allows either to use it on demand
$ git log --pretty=my-custom-log-format

# Or define it as the default configuration
$ git config --global format.pretty my-custom-log-format

لیستی از فرمت‌ها و متغیرها در دسترس شماست: https://git-scm.com/docs/pretty-formats

۵. از fixup برای فیکس کردن commit قبلی استفاده کرده و یک تاریخچه‌ی پاک‌تر دریافت کنید

احتمالا برای اصلاح آخرین commit، گزینه‌ی –amend را می‌شناسید، اما آیا گزینه‌ی –fixup و theautosquash را برای اصلاح هرگونه commit قبلی می‌شناسید؟!

هشدار: autosquash مرجع commitهای موجود در شاخه‌ی شما را تغییر می‌دهد.

به عنوان مثال جایی که می‌خواهید یک فایل README را به پروژه‌ی خود اضافه کنید در نظر بگیرید.

لیست commitهای مربوط به شاخه‌ی خود را که می‌خواهید فایل را بنویسید.

$ git log
b58faee269c Add contribution in README
18a11d43eb2 Add deployment in README
8385fc0cd1a Initial commit

و شما در آن‌جا خطایی در commit برای افزودن قسمت deployment مشاهده می‌کنید.

ما خطا و commit را با گزینه‌ی –fixup فیکس می‌کنیم.

$ git commit --fixup 18a11d43eb2
94ae1b02f4a fixup! Add deployment in README

اکنون git log این‌گونه به نظر می‌رسد:

$ git log
94ae1b02f4a fixup! Add deployment in README
b58faee269c Add contribution in README
18a11d43eb2 Add deployment in README
8385fc0cd1a Initial commit

ما در اینجا می‌توانیم اصلاح منابع مربوط به commitها را مشاهده کنیم.

$ git rebase -i --autosquash 8385fc0cd1a
$ git log
fc5c36d4183 Add contribution in README
0a94be69d2c Add deployment in README
8385fc0cd1a Initial commit

۶. پیام‌های commit را استانداردسازی کنید

Git به شما این امکان را می‌دهد تا پیام های commit را از یک قالب پر کنید.

$ vi ~/.gitmessage
Short Title

IssueNumber

Why :
$ git config --global commit.template "~/.gitmessage"

۷. فرمان جدید switch

در نسخه‌ی ۲.۲۳، فرمان جدیدی برای تغییر شاخه‌ها در دسترس قرار گرفته است.

معمولا از فرمان checkout استفاده می‌کنیم.

$ git checkout my_branch
Switched to branch 'my_branch'

اما حالا می‌توانیم از فرمان switch استفاده کنیم

$ git switch my_branch
Switched to branch 'my_branch'

و اگر ما بخواهیم شاخه‌ی جدیدی ایجاد کنیم از switch استفاده می‌کنیم.

$ git switch -c my_new_branch # equivalent to git checkout -b my_new_branch
Switched to a new branch 'my_new_branch'

۸. به شاخه‌ی قبلی برگردید

اگر مثل من کمی تنبل هستید، می‌توانید با استفاده از فرمان git switch - به شاخه‌ی قبلی برگردید.

(master) $ git switch my_branch
Switched to branch 'my_branch'

(my_branch) $ git switch -
Switched to branch 'master'

همچنین با git checkout – نیز کار می‌کند.

همچنین شما می‌توانید از فرمان‌های rebase یا merge با همان روش استفاده کنید.

(master) $ git switch my_branch
(my_branch) $ git rebase -

۹. فرمان جدید restore

اگر می‌خواهید یک فایل اطلاح شده را به حالت اولیه برگردانید، این قابلیت از نسخه‌ی ۲.۲۳ با فرمان restore در git اضافه شده است.

# Usually we use `git checkout -- <file>`
(master) $ git status
Changes not staged for commit:
    modified:   README.md

(master) $ git checkout -- README.md
(master) $ git status
nothing to commit, working tree clean

# We can now use the command `git restore`
(master) $ git status
Changes not staged for commit:
    modified:   README.md

(master) $ git restore README.md
(master) $ git status
nothing to commit, working tree clean

با تشکر از شما بابت خواندن این مقاله.

منبع

گردآوری و تالیف پوریا رزمجویی
آفلاین
user-avatar

پوریا رزمجویی هستم، دارای مدرک لیسانس معماری

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید