وبلاگ

پاک کردن تاریخچه ریپازیتوی گیت هاب


رقیه اباذری رقیه اباذری

حتما برای شما هم به عنوان یک برنامه‌نویس پیش آمده که بخواهید تمام هیستوری ریپازیتوری گیت‌هاب را پاک کنید. مثلا قبل از انتشار پیکجی که در صفحه 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 گیت‌هاب را مبجور می‌کند برنچی که پوش کرده‌اید را بپذیرد، حتی اگه هیستوری ریپازیتوری ربطی به هیستوری خالی پوش شده نداشت. 

حواستان باشد که ممکن است تمام پول ریکوئست‌ها بسته شود. هر لینکی به کامنت‌های خاص شما ممکن است دیگر کار نکند. اگر با چند فرد دیگر در حال کار روی ریپازیتوری هستید، به آنها اطلاع دهید که هیستوری را پاک کرده‌اید. البته عاقلانه‌تر این است که قبل از حذف هیستوری به آنها اطلاع دهید. آنها کلون ریپازیتوری را دوباره خواهند داشت.


رقیه اباذری
رقیه اباذری

مطالب مرتبط