تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

آموزش استفاده از Lazygit برای بهبود گردش کار Git


۲۱ اردیبهشت ۱۴۰۴

Lazygit یک ابزار متن‌باز ‌می‌باشد که یک رابط کاربری ترمینالی (TUI) برای Git فراهم می‌کند. این ابزار اجرای وظایف رایج در Git را سریع‌تر و ساده‌تر می‌کند. به‌جای تایپ‌کردن مکرر دستوراتی مانند git status، git commit یا git pull، با Lazygit می‌توانید این عملیات را تنها با چند میان‌بر صفحه‌کلید انجام دهید.

Lazygit در واقع یک لایه‌ی تعاملی روی Git CLI ایجاد می‌کند که باعث می‌شود کار با Git، از مدیریت برنچ‌ها (Branch) گرفته تا حل conflictها، راحت‌تر، سریع‌تر و کمتر مستعد خطا باشد.

در این مقاله از بلاگ لیارا قصد داریم با قابلیت‌های مهم Lazygit آشنا شویم و قدم‌به‌قدم نحوه کار با آن را یاد بگیریم. همراه ما باشید.

آنچه در این مقاله می‌خوانید:

  • نحوه نصب Lazygit
  • مقایسه Lazygit با سایر ابزارهای Git
  • نحوه استفاده از Lazygit
  • لیست کامل Shortcutsها در Lazygit
  • نتیجه‌گیری
  • سوالات متداول
آموزش استفاده از Lazygit برای بهبود گردش کار Git

نحوه نصب Lazygit

برای نصب این ابزار، بسته به سیستم‌عاملی که استفاده می‌کنید، می‌توانید یکی از روش‌های زیر را استفاده کنید:

نصب Lazygit در macOS با Homebrew

اگر از macOS استفاده می‌کنید، ساده‌ترین راه برای نصب Lazygit استفاده از Homebrew است. برای نصب، دستور زیر را در ترمینال اجرا کنید:

brew install lazygit

اگر Homebrew را هنوز نصب نکرده‌اید، می‌تونید از brew.sh راهنمای نصب آن را مشاهده کنید.

نصب Lazygit در ویندوز با Scoop

اگر از Windows استفاده می‌کنید و ابزار Scoop را روی سیستم دارید، می‌توانید Lazygit را خیلی سریع با دستور زیر نصب کنید:

scoop install lazygit

توجه: اگر برای اولین‌بار از Scoop استفاده می‌کنید و git یا extras bucket را اضافه نکردید، لازم است قبل آن، دستور زیر را اجرا کنید:

scoop bucket add extras

پس از نصب فقط کافی است در Command Prompt یا PowerShell دستور lazygit را وارد کنید تا رابط کاربری lazygit برایتان فعال شود.

توجه: اگر Scoop را هنوز نصب نکردید، می‌توانید از scoop.sh مراحل نصب را دنبال کنید.

نصب Lazygit در Arch Linux با Pacman

اگر از Arch Linux یا یکی از توزیع‌هایش مانند Manjaro استفاده می‌کنید، نصب Lazygit بسیار ساده است، زیرا Lazygit در ریپازیتوری‌های رسمی Arch وجود دارد. برای نصب دستور زیر را اجرا کنید:

sudo pacman -S lazygit

نصب Lazygit در Ubuntu و Debian

اگر سرور یا سیستم شما اوبونتو و دبیان یا یکی از توزیع‌های مبتنی بر آن است. با یک دستور ساده Lazygit را نصب کنید:

LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | \grep -Po '"tag_name": *"v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit -D -t /usr/local/bin/

کد بالا، آخرین نسخه Lazygit را از GitHub دریافت می‌کند، و در مسیر /usr/local/bin/ نصب می‌کند تا از هر جایی قابل اجرا باشد.

برای اینکه مطمئن شوید، نصب Lazygit درست انجام شده، دستور زیر را اجرا کنید:

lazygit --version

اگر ابزار به ‌درستی نصب شده باشد، خروجی زیر نمایش داده می‌شود:

commit=, build date=, build source=nix, version=0.44.1, os=linux

با این روش همیشه به آخرین نسخه Lazygit دسترسی دارید، حتی قبل از اینکه وارد ریپازیتوری‌های رسمی apt شوید.

نصب Lazygit در Fedora و RHEL

چنانچه روی Fedora یا RHEL کار می‌کنید، با استفاده از ریپازیتوری COPR ابزار Lazygit را نصب کنید.

دستورات زیر را برای نصب وارد کنید:

sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit

دستور اول ریپازیتوری Lazygit را از COPR فعال می‌کند و دستور دوم آن‌را نصب می‌کند.

نصب Lazygit در NixOS

چند روش مختلف برای نصب Lazygit روی NixOS یا Nix package manager وجود دارد. بسته به سبک کارتان یکی از روش‌های زیر را امتحان کنید:

با nix-shell (برای استفاده موقت):

nix-shell -p lazygit

با این‌کار، وارد shellی می‌شوید که Lazygit به‌صورت موقت در دسترس‌تان است.

با nix-env (نصب برای یوزر فعلی):

nix-env -iA lazygit

این روش Lazygit را برای یوزر فعلی نصب می‌کند و بعد از آن همیشه در دسترس است.

اضافه‌کردن به configuration.nix (برای نصب دائم):

environment.systemPackages = [
  pkgs.lazygit
];

بعد از اضافه کردن این خط کد، فقط کافی است سیستم را با sudo nixos-rebuild switch مجدد Build کنید تا Lazygit به‌صورت دائم نصب شود.

اجرای مستقیم با Flakes:

nix run nixpkgs#lazygit

این روش بدون نصب دائمی، Lazygit را اجرا می‌کند و بیشتر برای تست یا استفاده لحظه‌ای کاربرد دارد.

تا اینجا با روش‌های مختلف نصب Lazygit روی سیستم‌عامل‌های محبوب آشنا شدیم.

هاست Python در لیارا، هاستی پرسرعت، بدون نیاز به پیکربندی و انجام تنظیمات!
✅ سریع ✅ پایدار ✅ آسان
خرید هاست ابری Python

نحوه استفاده از Lazygit

برای استفاده از Lazygit نیازی نیست از قبل Git را کامل بلد باشید یا همه دستوراتش را از حفظ باشید. تنها موردی که نیاز است بدانید ،نحوه کار با کلیدهای میانبر (key mapping) در محیط Lazygit است.

اجرای Lazygit

برای اجرا، دستور زیر را تایپ کنید:

lazygit

خروجی نمونه:

Lazygit

وقتی lazygit را اجرا می‌کنید، یک رابط ترمینالی کاملا تعاملی را خواهد دید که از شش پنل اصلی تشکیل شده است. هر کدام از این پنل‌ها نقش خاصی دارند، و با کمک این بخش‌ها دیگر نیازی به دستورات Git ندارید. در ادامه بخش‌های مختلف آن‌را دقیق‌تر بررسی می‌کنیم.

پنل Status

در این قسمت فایل‌هایی که تغییر کرده‌اند، اضافه‌ شده‌اند یا آماده Stage و Commit هستند، لیست می‌شوند. می‌توانید با کلید s آن‌ها را Stage کنید یا با u به حالت قبلی برگردانید.

lazygit

کاربرد

  • مشاهده فایل‌های Modified، Staged، Untracked
  • Stage یا Unstage کردن سریع

پنل Files

زمانی که یک فایل انتخاب می‌کنید، این پنل تغییرات آن فایل را به‌صورت خط‌به‌خط به شما نشان می‌دهد.

lazygit

کاربرد

  • بررسی دقیق تغییرات فایل‌ها
  • بررسی قبل از Commit

پنل Local Branches

در این پنل می‌توانید بین برنچ‌ها جابه‌جا شوید، برنچ جدید بسازید یا برنچ فعلی را حذف کنید. کار با برنچ‌ها بدون تایپ دستور git checkout یا git branch بسیار کاربردی است.

lazygit

پنل Commit

اینجا لیست تمامی commitهایی که تا الان انجام داده‌اید را می‌بینید. بین commitها می‌توانید جابجا شوید و شاهد تغییرات آن‌ها باشید.

lazygit

پنل Stash

اگر بین کارتان تغییرات را موقتا کنار گذاشتید، می‌توانید با فلگ z یک stash بسازید و هر زمان که خواستید apply یا drop کنید.

lazygit

پنل Command log

این پنل یکی از مفیدترین قسمت‌های lazygit برای کسانی که می‌خواهند تاریخچه‌ی تمام کارهایی که تابحال انجام داده‌اند را ببینند.

lazygit

لیست کامل Shortcutsها در Lazygit

یکی از دلایلی که lazygit بین برنامه‌نویسان طرفداران زیادی پیدا کرده است، وجود همین shourtcutها است. زیرا دیگر نیازی نیست هر بار دستورهای تکراری Git را در ترمینال تایپ کنند. بطور مثال در Git معمولی، برای اینکه یک فایل را کامیت کنید، باید این کار را مرحله‌به مرحله انجام دهید:

git add filename
git commit -m "message"

اما در Lazygit با کلیدهای یا روی فایل navigate کنید و با فشردن کلید space، فایل موردنظر stage شود. تقریبا تمامی عملیات‌های رایج Git را با یک کلید می‌توانید انجام دهید.

در ادامه لیستی از مهم‌ترین shourtcutها و عملکرد آنها را خواهید دید.

کلیدعملکرد
aStage یا Unstage کردن همه فایل‌های موجود در پنل فایل‌ها
space (در Files Panel)Stage یا Unstage یک فایل خاص
cباز کردن ویرایشگر پیام برای commit فایل‌های Stage شده
pPush کردن commitها به ریپازیتوری remote
PPull کردن تغییرات از ریپازیتوری remote
zلغو (undo) آخرین commit انجام‌شده
sStash کردن تغییرات فعلی (برای سوییچ برنچ یا عملیات دیگه)
Sنمایش لیست stashها و امکان Apply/Drop کردن اون‌ها
nساخت یک برنچ جدید
dحذف برنچ فعلی (در حالت انتخاب‌شده در پنل برنچ‌ها)
Mادغام (merge) برنچ انتخابی با برنچ جاری
space (در Branches Panel)سوییچ به برنچ انتخاب‌شده (checkout)
eباز کردن فایل در ویرایشگر خارجی (مثلاً VS Code)
yکپی‌کردن داده (مثل SHA یا پیام commit) به کلیپ‌بورد
qخروج از Lazygit و برگشت به ترمینال
d (در فایل‌ها)Discard کردن تغییرات فایل (برگردوندن به آخرین commit)
?باز کردن منوی راهنمای شورتکات‌ها (keybindings)

در این بخش shourtcutهای معرفی شده را با سناریوی واقعی توضیح خواهیم داد.

چطور یک فایل را در Lazygit کامیت کنیم؟

برای کامیت کردن یک فایل در Lazygit، ابتدا باید فایل مورد نظر را انتخاب و stage کنید. برای این‌کار با کلیدهای جهت‌دار بین فایل‌ها حرکت کرده و با فشردن کلید space یا a، آن‌را انتخاب کنید.

نحوه Push و Pull کردن کدها

برای انجام عملیات Pull و Push در Lazygit، نیازی به وارد کردن دستی دستورات Git نیست؛ تمامی این عملیات‌ها از طریق کلیدهای میان‌بر قابل انجام هستند. پس از آن‌که تغییرات خود را Commit کردید، جهت ارسال آن‌ها به ریپازیتوری Remote، کافی‌ست کلید p را فشار دهید تا عملیات Push اجرا شود. همچنین برای دریافت آخرین تغییرات از ریپازیتوری Remote، می‌توانید از کلید P (حرف P بزرگ) استفاده کنید که معادل اجرای دستور Pull خواهد بود. Lazygit به‌صورت خودکار ریموت پیش‌فرض (مانند origin/main) را تشخیص داده و در صورت پیکربندی صحیح، این عملیات‌ها را بدون نیاز به مداخله دستی انجام می‌دهد.

آموزش کامل نوشتن یک پیام کامیت مناسب در گیت را می‌توانید در مقاله زیر مطالعه کنید. (راهنمای کامل)
نحوه نوشتن پیام کامیت در گیت

نحوه ایجاد و حذف یک Branch

برای ایجاد یک برنچ (شاخه) جدید در Lazygit، کافی‌ست کلید n را فشار دهید. با این کار، یک پنل جدید در محیط Lazygit باز می‌شود که در آن می‌توانید نام برنچ مورد نظر خود را وارد کنید. پس از تایپ نام برنچ، با زدن کلید Enter، شاخه جدید ایجاد شده و به‌طور خودکار به آن سوییچ خواهید شد.

برای حذف یک برنچ در Lazygit، کافی‌ست ابتدا کلید d را فشار دهید. پس از آن، Lazygit از شما می‌پرسد که قصد دارید برنچ را از ریپازیتوری محلی (local) حذف کنید یا از ریپازیتوری راه‌دور (remote). با انتخاب گزینه مورد نظر برای مثال حذف برنچ محلی و تأیید، برنچ انتخاب‌شده حذف خواهد شد. این روش جایگزین ساده‌ای برای دستوراتی مانند git branch -d یا git push origin --delete است و مدیریت شاخه‌ها را در محیط ترمینال سریع‌تر و کاربرپسندتر می‌کند.

نحوه برگرداندن یک Commit

برای بازگرداندن (undo) آخرین commit در Lazygit، کافی‌ست کلید z را فشار دهید. با این کار، یک پنل جدید باز می‌شود که جزئیات commit اخیر را به شما نمایش می‌دهد از جمله پیام commit و فایل‌های شامل‌شده. پس از بررسی اطلاعات، با فشردن Enter می‌توانید آن commit را لغو کنید.

نحوه Merge کردن یک Branch

برای ادغام (Merge) یک برنچ در Lazygit، ابتدا کلید M (حرف بزرگ M) را فشار دهید. با این کار، پنل مربوط به گزینه‌های Merge باز می‌شود. در این پنل می‌توانید نوع Merge مورد نظر خود را انتخاب کرده و سپس با فشردن Enter عملیات را تأیید کنید.

در Lazygit، سه نوع Merge اصلی وجود دارد:

Squash Merge and Leave Uncommitted:
مانند Squash Merge عمل می‌کند، با این تفاوت که تغییرات را در حالت staged باقی می‌گذارد و commit نهایی را به شما واگذار می‌کند.

Merge : این گزینه یک Merge معمولی انجام می‌دهد و تاریخچه‌ی کامل برنچ مبدأ را حفظ می‌کند. مشابه دستور git merge branch-name.

Squash Merge : تمامی commitهای برنچ مبدأ را به یک commit واحد در برنچ هدف تبدیل می‌کند. برای زمانی مفید است که می‌خواهید تاریخچه‌ی ساده‌تری داشته باشید.

هر آنچه باید در مورد GitHub بدانید را می‌توانید در مقاله زیر مطالعه کنید.
گیت‌هاب چیست؟

چگونه merge conflictها را برطرف کنیم؟

برای رفع Conflict در Lazygit، ابتدا باید با فشردن کلید M عملیات Merge را انجام دهید. در ادامه، نوع Merge موردنظر خود را انتخاب کرده و کلید Enter را بزنید.

در صورتی که حین Merge، تداخلی در فایل‌ها (Merge Conflict) به وجود بیاید، فایل‌های دچار Conflict در پنل فایل‌ها (Files Panel) نمایش داده می‌شوند. برای مشاهده‌ی جزئیات Conflict، کلید Enter را روی فایل مربوطه بزنید تا محتوا در پنل پیش‌نمایش (Preview Panel) نمایش داده شود.

در این پنل، می‌توانید با کلیدهای جهت بالا و پایین بین بخش‌های مختلف Conflict جابه‌جا شوید. پس از اینکه نسخه صحیح یا ترکیبی از کد را انتخاب کردید و فایل را ویرایش نمودید، کافی‌ست با فشردن کلید space فایل را Stage کنید. پس از Stage شدن تمامی فایل‌های دارای Conflict، مشکل ادغام رفع شده و می‌توانید commit نهایی را انجام دهید.

نحوه Discard کردن تغییرات

برای حذف (Discard) تغییرات یک فایل یا کنار گذاشتن یک Commit در Lazygit، کافی‌ست کلید d را فشار دهید. این میان‌بر، پنجره‌ای برای تأیید عملیات باز می‌کند و پس از تأیید، تغییرات انتخاب‌شده حذف شده و فایل یا commit مربوطه به حالت قبلی بازگردانده می‌شود.

نحوه کپی کردن در Lazygit

برای کپی کردن نام فایل، مسیر فایل، هش commit، پیام commit، آدرس URL، نام نویسنده یا هر اطلاعات دیگری در Lazygit، ابتدا باید فایل یا commit مورد نظر را در پنل مربوطه انتخاب کنید. سپس با فشردن کلید y، اطلاعات انتخاب‌شده به کلیپ‌بورد سیستم کپی خواهد شد و می‌توانید از آن در جای دیگری استفاده کنید.

آموزش کامل نصب Git در سرور مجازی ابری اوبونتو را در مقاله زیر بخوانید.
نصب گیت در اوبونتو

مقایسه Lazygit با سایر ابزارهای Git

وقتی صحبت از کار با Git می‌شود، انتخاب ابزار مناسب کاملا به سبک‌کاری، سرعت و حتی محیط کاری بستگی دارد. در این بخش با تفاوت‌های Lazygit با دیگر ابزارهای Git آشنا می‌شویم.

Lazygit در مقابل GitKraken

GitKraken یه ابزار گرافیکی فوق‌العاده قوی با UI زیبا و بصری است که بیشتر برای تیم‌ها و پروژه‌های بزرگ با workflowهای پیچیده طراحی شده است. امکاناتی مثل integration با GitHub/GitLab، مدیریت conflict بصری، گراف تعاملی و ابزارهای merge حرفه‌ای دارد.

ویژگیLazygitGitKraken
رابط کاربریترمینالی و سریع (TUI)گرافیکی کامل و drag & drop
سرعت اجرابسیار سریع و سبکنسبتاً سنگین، مخصوصاً در سیستم‌های ضعیف
منابع مصرفیبسیار پایین (کمتر از 10MB رم)بالا (ممکنه 300MB+ مصرف RAM داشته باشه)
یادگیریبرای کاربران Git آشنا ساده‌ استراحت برای تازه‌کارها
سفارشی‌سازیبالا (با config و keybindingها)محدودتر و نیازمند GUI
کار در SSH / سرورکاملاً مناسبنیاز به محیط گرافیکی

Lazygit در مقابل GitHub Desktop

GitHub Desktop یک گزینه‌ی خوب برای تازه‌کارها است و UX خیلی ساده‌ای دارد. ولی امکانات حرفه‌ای زیادی مثل stash، interactive rebase، یا full branch management در اختیار نمی‌گذارد.

Lazygit در عوض:

  • پشتیبانی کامل از stash، rebase، amend commit، interactive log
  • اجرای بهتر در مخازن بزرگ یا پروژه‌های چندبرنچی
  • بدون وابستگی به محیط گرافیکی، مناسب برای DevOps و سرورها

Lazygit در مقابل Git CLI

شاید بگویید کار ما با Git CLI راه می‌افتد، چرا اصلا سراغ Lazygit برویم؟

دلیلش ساده‌ست:

  • Lazygit کل UX Git را بدون تغییر در منطق CLI، فقط سریع‌تر و تعاملی‌تر می‌کند.
  • با lazygit می‌توانید در لحظه diff ببینید، برنچ عوض کنید، stash و reset بزنید، همه‌ با چند کلید!
  • خطاهای ناشی از اشتباه تایپی یا فراموشی دستور کمتر می‌شوند.

در آخر بهتر است بگوییم، اگر کارتان مبتنی بر ترمینال است و رابط کاربری سریع می‌خواهید، Lazygit بهترین و مناسب‌ترین انتخاب است.

همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راه‌اندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه به‌صرفه
خرید سرور مجازی ابری

نتیجه‌گیری

Lazygit ابزاری بسیار مفید برای افزایش سرعت در کار با Git است. هنگام شروع، ممکن است استفاده از Lazygit برای کاربران مبتدی کمی چالش‌برانگیز باشد، به‌ویژه به‌خاطر ساختار کلیدهای میان‌بر (key mappings). اما پس از مدتی استفاده و آشنایی با آن‌ها، متوجه خواهید شد که کار با این کلیدها بسیار آسان می‌باشد.

اگر برای اولین‌بار قصد استفاده از Lazygit را دارید، توصیه می‌کنیم آن را روی یک ریپازیتوری فعال و مهم امتحان نکنید. در عوض، یک Repository آزمایشی بسازید و در آن تمرین کنید تا بدون نگرانی از آسیب به پروژه‌های واقعی، با عملکرد ابزار آشنا شوید.

سوالات متداول

آیا Lazygit جایگزین کامل Git CLI است؟

خیر، Lazygit یک ابزار کمکی بر پایه Git CLI است که تجربه کار با Git را سریع‌تر و ساده‌تر می‌کند.

آیا Lazygit از تمام قابلیت‌های Git پشتیبانی می‌کند؟

بله، Lazygit اکثر قابلیت‌های روزمره Git مانند commit، branch، stash، merge و rebase را پوشش می‌دهد.

آیا از Lazygit می‌توانم در پروژه‌های بزرگ استفاده کنم؟

بله، Lazygit بسیار سبک و سریع است.

به اشتراک بگذارید