دیدن وضعیت (Status) فعلی مخزن (Repository)، با دستور
git status ، در Git
دستور git status یکی از پرکاربردترین و مهمترین دستورات در Git است. همانطور که از نامش پیداست، وضعیت (Status) فعلی مخزن (Repository) شما را نشان می دهد.
به زبان ساده، این دستور به شما می گوید که در مقایسه با آخرین کامیت (Commit) انجام شده، چه تغییراتی در پروژه تان رخ داده است و این تغییرات در چه مرحله ای از چرخه کاری Git قرار دارند.
دقیقا git status چه چیزی را به شما نشان می دهد؟
وقتی این دستور را اجرا می کنید، خروجی آن به سه بخش اصلی تقسیم می شود:
۱. فایل های آماده سازی شده برای کامیت (Changes to be committed)
این بخش فایل هایی را نشان می دهد که با دستور git add به منطقه ی Stage (یا Index) اضافه شده اند و آماده ی ثبت شدن در یک کامیت جدید هستند. اگر همین الان دستور git commit را بزنید، فقط همین فایل ها در کامیت جدید قرار می گیرند.
۲. فایل های تغییرکرده اما آماده سازی نشده (Changes not staged for commit)
این بخش فایل هایی را نشان می دهد که در دیسک (Working Directory) تغییر کرده اند (ویرایش شده اند یا حذف شده اند)، اما هنوز با دستور git add به Stage اضافه نشده اند. این تغییرات در کامیت بعدی شما لحاظ نخواهند شد، مگر اینکه ابتدا آن ها را add کنید.
۳. فایل های جدید و ردیابی نشده (Untracked files)
این بخش فایل های جدیدی را نشان می دهد که در پوشه ی پروژه ایجاد شده اند، اما Git هنوز آن ها را تحت نظارت (Track) خود قرار نداده است. Git به این فایل ها کاملا بی توجه است تا زمانی که با git add آن ها را به پروژه معرفی کنید.
مزایا و کاربردهای اصلی git status
دیدن وضعیت مخزن در یک نگاه: قبل از هر اقدامی (مثلا قبل از زدن git commit یا git pull) بهتر است این دستور را بزنید تا دقیقا بدانید در چه وضعیتی هستید.
پیشگیری از اشتباه: این دستور به شما هشدار می دهد اگر تغییراتی را فراموش کرده اید که add کنید یا برعکس، فایلی را اضافه کرده اید که نباید کامیت می شد.
مشاهده ی راهنما: خود Git در خروجی این دستور، راهنمایی های مفیدی به شما نشان می دهد. مثلا اگر فایل های تغییرکرده دارید، به شما می گوید که با دستور git add آن ها را Stage کنید و با git restore تغییرات را لغو کنید.
تفاوت خروجی در حالت عادی و حالت خلاصه (Short)
حالت عادی : با زدن git status یک خروجی مفصل و توضیح دار دریافت می کنید.
حالت خلاصه : با زدن
git status -s یا
git status --short ، خروجی به صورت فشرده و با نمادهای زیر نمایش داده می شود که برای اسکن سریع بسیار مفید است:
?? : فایل جدید و ردیابی نشده (Untracked)
M : فایل تغییر کرده (Modified)
A : فایل جدید اضافه شده به Stage (Added)
MM : فایلی که هم در Stage تغییر دارد و هم در Working Directory تغییر دارد.
git status هیچ گاه اطلاعاتی را از مخزن حذف یا تغییری در فایل ها ایجاد نمی کند. این یک دستور صرفا فقط-خواندنی (Read-Only) است. به همین دلیل، استفاده از آن کاملا امن است و می توانید هر چند بار که دوست دارید آن را اجرا کنید تا از وضعیت پروژه مطمئن شوید. بسیاری از توسعه دهندگان حرفه ای تقریبا قبل از هر دستور دیگری، اول git status می زنند!