سلام خسته نباشید
استاد وقتی به یک commit بر می گردیم
خوده اون کامیت میمونه و هرچی قبل از اون بوده پاک میشه
درست متوجه شدم؟
عرض سلام و وقت خدمت شما، اول اینکه عذرخواهی میکنم بجای استاد آوند بنده دارم پاسخ میدم . درسته ولی ببینید به نظر بنده بهتر به جای استفاده از عبارت "پاک شدن" ، بگیم "مخفی شدن" چون commit های شما حذف نمیشن هرچند با اینکه شما مثلا با استفاده از دستور git reset --hard به commit مورد نظر سوئیچ میکنید و ممکن هم هست برخی فایل هاتون رو ببینید(منظورم اونایی که track نشدن) از دیدتون ناپدید میشن ولی حذف نمیشن کافیه دوباره با استفاده از همون دستور git reset --hard یا git reset و زدن آیدی commit قبلی ، برمیگردید به commit های پیشین . بزارید با یک مثال شفاف تر کنم عرائضم رو. ببینید به عنوان مثال شما چهار تا commit دارید و بنا به تصمیمی که گرفتید میخواید به commit دوم سوئیچ کنید، پس با استفاده از دستور git reset --hard یا git reset و زدن آیدی commit دوم به همون commit برید و اگه log هم بگیرید میبینید که commit سوم و چهارم رو نمایشم نمیده ، بازهم عرض میکنم commitی حذف نشده چرا این حرف رو میزنم ؟ فقط کافیه با استفاده از همون دستور git reset --hard یا git reset و زدن آیدی commit چهارم و گرفتن log ببینید که دوباره همه commit های شما برمیگرده .
امیدوارم تونسته باشم کمکی کرده باشم
درواقع هر چی بعدش بوده پاک میشه
قبلش درست نیست
کاش قابلیت ادیت کردن پیام هایی که خودمون میفرستیم رو اضافه میکردید.
ممنون از محسن جان توضیحشون کامل و عالی بود
یک نکته هم بنده اضافه کنم اونم اینکه همونطور که دوستمون گفت log ها پاک نمیشند و در دایرکتوری زیر باقی میمونند : git\objects.
برای هر log یک پوشه ساخته میشه که اسم پوشه 2 حرف اول ای دی commit هستش و اسم فایل باقی ای دی برای مثال log با ای دی 7e19a38277eacd1c تو مسیر git\objects\7e. موجوده با اسم 19a38277eacd1c
نکته خفن ترش اینجاست که برای reset commit کافیه 7 کاراکتر اول id رو وارد کنید نه نام کامل id رو چون 7 کاراکتر های اول commit id ها unique هستند و تکراری نیستند ... از دستور زیر برای مشاهده log ها به صورت تک خطی و با همون 7 کاراکتر اول استفاده میشه :
git log --oneline
برای اینکه بتونید commit هایی که قابل مشاهده نیست رو ببینید میتونید از دستور زیر استفاده کنید :
git log --all
برای نمایش مرتب تره تمام commit ها میتونید از دستور زیر استفاده کنید :
git log --all --oneline --graph --decorate
براینکه هر دفعه لازم نباشه دستور بالا رو تکرار کنید میتونید از روش زیر یک short code ساخته و از اون هر بار استفاده کنید:
git config --global alias.glog 'log --all --oneline --graph --decorate'
برای استفاده کافیه این دستور رو از این بعد استفاده کنید
git glog
سلام و عرض ادب خدمت استاد گرامی و دوستان عزیز
سوالم این بود که اگر برنچ develop یا هر برنچ دیگه ای ای تغیراتی ایجاد بکنن master چطور میتونه اونا رو برگردونه؟
چون بنده با برنچ develop تغیراتی رو اعمال کردم اما master نتونست برگردونه و فقط خود develop این اجازه رو داشت
سلام و خسته نباشید
میخواستم یه نکته به فرمایش دوستان اضافه کنم
برای حذف short code میتوان از دستور زیر استفاده کرد:
$ git config --global --unset alias.YourAlias
با دستور زیر هم میتوانید همه تنظیمات و هم alias ها رو برسی کنید :
$ git config --list