Xoá Dữ Liệu Nhạy Cảm Khỏi Lịch Sử Git - Viblo
Có thể bạn quan tâm
Chắc có lẽ chúng ta đều đã từng lỡ lầm phạm phải những nguyên tắc bảo mật như vô tình push một file mật nào đó (access token, password hay các chuỗi kết nối,...) lên git server và không có cách nào sửa sai kịp thời. Nếu là trước đây chắc thao tác này hẳn sẽ khiến chính chủ phải sống trong sợ hãi. Nhưng bây giờ thì mọi chuyện sẽ đơn giản hơn khi có BFC, một tool cho phép xoá sạch git repos của chính mình và có thể xoá cả những dữ liệu nhạy cảm một cách nhanh chóng chính xác. Hãy đảm bảo rằng bạn đã tải file jar BFC tại đây và có cài đặt sẵn java trong máy để chạy được tool. Khi nguyên liệu đã đủ, nào thì cùng bắt đầu thôi.
Xóa dữ liệu nhạy cảm (Dữ liệu cũng có cảm xúc đấy)
Xoá các file mật từ cả tệp lẫn trong commit của bạn trên branch master. Lý do vì sao phải làm vậy là vì HEAD commit luôn được coi là một commit cần bảo vệ và BFC tool chắc chắn sẽ không đụng tới nó.
git commit -m "Oops"Thiết lập một bản sao mới từ Git. Sẽ cần sử dụng * --mirror* flag ở đây vì chúng ta chỉ cần chỉnh sửa trong lịch sử git chứ không đụng đến hầu hết các file trong repos.
git clone --mirror your_repo_urlSao lưu bản sao này lại đề phòng xảy ra chuyện gì bất trắc. Tạo một file .txt và thêm vào đó các thông tin nhạy cảm mong muốn xoá. Nên tách mỗi mục một dòng riêng biệt. BFG sẽ tìm kiếm các từ khoá đã tạo thông qua lịch sử Git.
superawesomeapikey1 password123Chạy lệnh dưới để dọn dẹp hết các bí mật không muốn bị tiết lộ.
java -jar bfg.jar --replace-text secrets.txt your_repo.gitThay đổi thư mục trong git repo và chạy lệnh sau để dọn dẹp các dữ liệu "bẩn" trong git.
cd your_repo git reflog expire --expire=now --all && git gc --prune=now --aggressiveCâu lệnh trên khá lằng nhằng khi còn sử dụng cả đến toán tử &&. Hãy thử bóc tách chúng ra riêng xem sao.
git reflog expire --expire=now --allĐầu tiên, reflog ở đây là viết tắt của "Reference Logs". Reference logs sẽ chỉ theo dõi lịch sử Git lần cuối update. expire --expire=now trong câu lệnh trên dùng để cắt tỉa bớt các git reflog cũ. Cuối cùng, thêm thẻ* --all* để chỉ định câu lệnh chạy trên tất cả các tham chiếu.
git gc --prune=now --aggressiveTiếp theo, chúng ta chạy lệnh git gc. Lệnh này về cơ bản là dùng để dọn sạch repos của mình. --prune=now dùng để xoá tất cả các references đến bất kì đối tượng git đơn lẻ hay cả những git không thể truy cập được. --aguptsive dùng để tăng tốc độ git để dọn dẹp mọi thứ sạch sẽ nhất có thể. Khi mọi thứ đã xong xuôi, thao tác cuối để hồi phục về ban đầu như mong muốn:
git pushGiờ thì tất cả những bí mật nhạy cảm đã bị cho bay màu một cách nhanh chóng.
Điều quan trọng khi sử dụng tool này là nó sẽ giúp bạn có một lịch sử Git sạch đẹp như omo. Và nếu có làm như này trong khi đang làm việc nhóm thì hãy lưu ý và đảm bảo cho đồng nghiệp của bạn có một bản sao git clone mới nhất nhé.
Link bài viết tham khảo tại đây
Từ khóa » Xóa File Trong Github
-
Remove Những File đã được Commit Vào Git Repository - The Little Coder
-
[Git] Xoá Tận Gốc Rễ Một File đã Từng Push Lên Github
-
Thao Tác Cơ Bản | Hướng Dẫn Về Git Cho Người Mới Bắt đầu - Backlog
-
Xóa Thư Mục Hoặc File Trên Github - Delete An Item On Github
-
Làm Thế Nào để Loại Bỏ Một Thư Mục Từ Kho Git? - HelpEx
-
Xóa File Trong Máy Mà Phía Trên Github Nó Không Xóa - Dạy Nhau Học
-
[GitHub] Xóa File Trong Repo – Truly Easy
-
Deleting Files In A Repository - GitHub Docs
-
Một Số Trường Hợp Khi Sử Dụng Git - Viblo
-
Làm Sao Tạo Và Xoá Một Repository Trên GitHub? - Openplanning
-
Cách Xóa Một Nhánh Trong Git Cục Bộ Và Từ Xa - THPT Sóc Trăng
-
Xoá File Hoặc Thư Mục đã được Commit Lên Remote Repository Sau Khi ...
-
Xoá File đã Tồn Tại Trong Git Và Cập Nhật Gitignore Giữa Chừng Dự án
-
Cách Xóa Theo Dõi Github Khỏi Dự án Project - Vnfree.Net