- قابلیتی وجود داره که می شه فهمید چه فایل هایی چه تغییراتی کرده اند !
- البته فایل هایی که Untracked هستند رو نمیشه فهمید چه تغییراتی کرده اند.
- برای این منظور :
git diff HEAD
- با زدن این دستور فایل هایی که دچار تغییرات شدند ( تغییراتی از بعد از آخرین commit ) را نشان می دهد یا تغییراتی که در حین زمانی که ممکن است یک فایل در حالت stage قرار داشته باشد را نشان می دهد.
- وقتی عادت کنیم که فایل های در حالت stage را ویرایش نکنیم. آنگاه این دستور تنها تغییرات از بعد از آخرین commit را نمایش می دهد.
- در دستور بالا از HEAD استفاده کردیم یعنی تمام تغییرات در تمام فایل ها. می توانستیم تنها نام یک فایل خاص را وارد کنیم.
git diff index.html
- پس نکته ی بسیار مهم : وقتی یک فایل در حالت stage قرار دارد آن را ویرایش نکنیم. در صورت نیاز به ویرایش ابتدا باید آن را از حالت stage خارج کنیم !
- برای این منظور :
git reset index.html
- ممکن است یک یا چند فایل در داخل stage قرار داشته باشد و بخواهیم ببینیم که این فایلی(هایی) که در درون stage قرار دارد چه چیز هایش تغییر کرده است ! برای این منظور :
git diff --staged
- با استفاده از دستور بالا، تمامی فایل های درون stage به منظور diff فراخوانی می شوند. در صورتی فایلی خاص که درون stage قرار دارد را بخواهیم diff کنیم. به صورت زیر عمل می کنیم:
git diff --staged file.txt
- ممکن است نیاز باشد تا کل محتویات یک فایل رو به آخرین commit ای که شده برگردونیم !
- برای این منظور به شکل زیر عمل می کنیم
git checkout -- index.html
- فقط یک نکته این که فایل نباید در حالت stage باشه و اگر بود اول باید از حالت stage خارج بشه و سپس برش گردونیم به آخرین commit . یعنی :
git reset index.html git checkout -- index.html