کشش اجباری در GitHub – نحوه بازنویسی تغییرات محلی با Git


هنگام کار بر روی یک پروژه به عنوان بخشی از یک تیم، ممکن است یک پیام خطایی دریافت کنید که به شما می گوید نمی توانید git pull
در مخزن خود اجرا کنید زیرا تغییرات محلی دارید.
چرا این اتفاق می افتد؟
این خطا معمولاً زمانی رخ می دهد که چندین نفر در حال ارائه به روز رسانی برای یک فایل هستند. در اصل، فایل های یکسان با محتوای متفاوت وجود دارد.
ممکن است بخواهید git pull
مجبور کنید و تغییرات محلی خود را با تغییرات موجود در مخزن راه دور بازنویسی کنید.
به طور پیش فرض، Git تغییرات را بازنویسی نمی کند. در عوض، به دلایل ایمنی، به شما اطلاع میدهد که تغییرات محلی دارید که با تغییرات جدید معرفیشده و متعهد به مخزن Git بازنویسی میشوند.
در این مقاله، نحوه بازنویسی تغییرات محلی را با جدیدترین آنها از مخزن راه دور یاد خواهید گرفت.
بیایید وارد آن شویم!
چگونه git pull
برای بازنویسی تغییرات محلی در Git مجبور کنیم
به خاطر داشته باشید که هنگام اجرای دستورات در بخش های زیر، تغییرات محلی غیرمتعهد خود را در سیستم خود از دست خواهید داد. همه تغییرات با تغییرات موجود در مخزن جایگزین می شوند.
دیگر اخبار
بیشتر بخوانید
آموزش برنامه نویسی - “مرز داده” مایکروسافت برای مشتریان ابر اتحادیه اروپا از اول ژانویه منتشر می شود
افسانه 4: همه چیزهایی که تاکنون می دانیم
همه تغییرات از راه دور را واکشی کنید
ابتدا، تمام تغییرات اخیر را از مخزن راه دور واکشی کنید.
برای انجام این کار، باید دستور git fetch
را مانند زیر اجرا کنید:
git fetch --all
دستور بالا آخرین به روز رسانی ها را از راه دور دانلود کرده و مخزن محلی شما را با ریموت همگام می کند.
شعبه محلی خود را بازنشانی کنید
سپس دستور git reset --hard
را اجرا کنید.
سینتکس کلی این دستور چیزی شبیه به زیر است:
git reset --hard remote/remote-branch-name
پس ، اگر remote-branch-name
main
نامیده شود، موارد زیر را بنویسید:
git reset --hard origin/main
این دستور همه تغییرات محلی غیرمتعهد شما را دور انداخته و بازنویسی میکند و وضعیت شاخه را به حالت کنترل از راه دوری که به تازگی واکشی کردهاید تنظیم میکند.
گزینه --hard
یک هارد ریست را روی شاخه origin/main
انجام می دهد.
هر گونه تغییر محلی غیرمتعهد که توسط Git ردیابی شده است را از دست خواهید داد. فایل ها و دایرکتوری های محلی که توسط Git ردیابی نشده اند تحت تأثیر قرار نمی گیرند.
فایل ها و پوشه های ردیابی نشده را حذف کنید
برای حذف فایل ها و دایرکتوری هایی که توسط Git ردیابی نشده اند از دایرکتوری کاری خود، می توانید از دستور git clean
استفاده کنید:
clean -fd
به خاطر داشته باشید که این عمل غیر قابل برگشت است!
کشیدن
در نهایت دستور git pull
را اجرا کنید:
git pull
چگونه git pull
اجباری کنیم و تغییرات محلی را در Git ذخیره کنیم
اگر می خواهید ایمن باشید، ممکن است بخواهید تغییرات محلی غیرمتعهد را ذخیره کنید، زیرا پس از اجرای دستور git reset --hard
آنها را از دست خواهید داد.
می توانید از دستور git stash
برای ذخیره تغییرات محلی غیرمتعهد برای استفاده بعدی استفاده کنید:
git stash
این دستور تغییرات محلی را در یک ذخیره ذخیره میکند و در صورت نیاز میتوانید پس از fetch
، reset
و clean
مراحل ذکر شده در بخش قبل، در آینده آنها را اعمال کنید.
برای اعمال مجدد تغییرات ذخیره شده در تاریخ بعدی، از دستور git stash pop
استفاده کنید:
git stash pop
نتیجه
در این مقاله، یاد گرفتید که چگونه git pull
برای بازنویسی تغییرات محلی در Git وادار کنید و در صورت نیاز چگونه تغییرات محلی را در یک stash ذخیره کنید.
با تشکر از شما برای خواندن، و کد نویسی مبارک!
ارسال نظر