حتما برای شما هم به عنوان یک برنامهنویس پیش آمده که بخواهید تمام هیستوری ریپازیتوری گیتهاب را پاک کنید. مثلا قبل از انتشار پیکجی که در صفحه private روی آن کار کردهاید.
شاید شما هم مثل ما بعضی اوقات دوست نداشته باشید تمام اشتباهاتی که در پروسه کدنویسی انجام شده را دیگران ببینند. خب راه حل چیست؟
گامهایی که باید انجام بدهید در ادامه لیست شده است:
# clone the repo (skip if you already have a cloned repo locally)
git clone git@github.com:USERNAME/REPOSITORY.git
cd REPOSITORY
# remove all history locally
rm -rf .git
# create a new local repo
git init
# add everything
git add .
git commit -m "First commit"
# nuke history on GitHub (irreversable)
git remote add origin git@github.com:USERNAME/REPOSITORY.git
git push -u --force origin master
فلگ u-
به صورت خودکار tracking را تعیین میکند.
اصطلاحات فنی
منظور از ترکینگ یا tracking، قابلیت گیت برای حذف آرگومانها از دستورات پوش و پول است. به این معنی که وقتی از دستور git push -u origin master
استفاده میکنیم، گیت در دفعات بعد به صورت خودکار میفهمد که کجا باید پوش و پول را انجام دهد و دیگری نیازی به نوشتن origin master
بعد از این دستورات نداریم. در واقع این دستورات به صورت git push
و git pull
اجرا میشوند.
آپشن --force
گیتهاب را مبجور میکند برنچی که پوش کردهاید را بپذیرد، حتی اگه هیستوری ریپازیتوری ربطی به هیستوری خالی پوش شده نداشت.
حواستان باشد که ممکن است تمام پول ریکوئستها بسته شود. هر لینکی به کامنتهای خاص شما ممکن است دیگر کار نکند. اگر با چند فرد دیگر در حال کار روی ریپازیتوری هستید، به آنها اطلاع دهید که هیستوری را پاک کردهاید. البته عاقلانهتر این است که قبل از حذف هیستوری به آنها اطلاع دهید. آنها کلون ریپازیتوری را دوباره خواهند داشت.
رقیه اباذری
تو دانشگاه IT خوندم و اکثر منابع کتابهای ترجمه شده بودند و صدالبته مبهم :( مثلا element رو "عنصر" ترجمه میکردن و من همیشه میرفتم تو شیمی و جدول مندلیف. تو باورژن سعی کردم تا حد ممکن مطالب رو با زبان ساده و قابل درک بنویسم. باشد که کسانی که تازه پا به عرصه برنامهنویسی گذاشتن، راغبتر بشن و با نظرات و فیدبکهای شما راه هموارتر بشه:)
دیدگاهها
ثبت دیدگاه