سلام خسته نباشید استاد وقتی به یک commit بر میگردیم خوده اون کامیت میمونه و هرچی قبل از اون بوده پاک میشه درست متوجه شدم؟
درواقع هر چی بعدش بوده پاک میشه قبلش درست نیست کاش قابلیت ادیت کردن پیام هایی که خودمون میفرستیم رو اضافه میکردید.
sara madani۰۸ بهمن ۱۳۹۸، ۱۴:۲۱
عرض سلام و وقت خدمت شما، اول اینکه عذرخواهی میکنم بجای استاد آوند بنده دارم پاسخ میدم . درسته ولی ببینید به نظر بنده بهتر به جای استفاده از عبارت "پاک شدن" ، بگیم "مخفی شدن" چون 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
mahdi mortezaee۲۳ بهمن ۱۳۹۸، ۱۴:۵۴
نکته خفن ترش اینجاست که برای reset commit کافیه 7 کاراکتر اول id رو وارد کنید نه نام کامل id رو چون 7 کاراکترهای اول commit id ها unique هستند و تکراری نیستند ... از دستور زیر برای مشاهده logها به صورت تک خطی و با همون 7 کاراکتر اول استفاده میشه :
git log --oneline
mahdi mortezaee۱۹ اسفند ۱۳۹۸، ۱۱:۱۸
برای اینکه بتونید 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
mahdi mortezaee۱۹ اسفند ۱۳۹۸، ۱۱:۲۸
سلام و عرض ادب خدمت استاد گرامی و دوستان عزیز سوالم این بود که اگر برنچ develop یا هر برنچ دیگه ای ای تغیراتی ایجاد بکنن master چطور میتونه اونا رو برگردونه؟ چون بنده با برنچ develop تغیراتی رو اعمال کردم اما master نتونست برگردونه و فقط خود develop این اجازه رو داشت
علیرضا شاهسواری۱۹ اسفند ۱۳۹۸، ۱۸:۲۵
سلام و خسته نباشید
میخواستم یه نکته به فرمایش دوستان اضافه کنم
برای حذف short code میتوان از دستور زیر استفاده کرد:
$ git config --global --unset alias.YourAlias
Shahin۱۶ شهریور ۱۳۹۹، ۱۷:۰۴
با دستور زیر هم میتوانید همه تنظیمات و هم aliasها رو برسی کنید :