Trong quá trình làm việc với Git trên Linux, không ít trường hợp bạn cần loại bỏ một thư mục khỏi repository vì không còn sử dụng, chứa dữ liệu tạm thời hoặc không nên đưa lên source code. Tuy nhiên, Git không quản lý thư mục trống mà chỉ theo dõi từng file, nên việc xóa thư mục cần thực hiện đúng cách để tránh sót dữ liệu hoặc gây lỗi khi commit. Bài viết dưới đây sẽ hướng dẫn bạn cách xóa thư mục khỏi Git trên Linux nhanh chóng.
Những điểm chính
- Lý do cần xóa thư mục khỏi Git: Hiểu được lý do và tầm quan trọng của việc xóa thư mục để giữ cho dự án gọn gàng, dễ bảo trì và đảm bảo tính nhất quán trong lịch sử phát triển.
- Các cách xóa thư mục khỏi Git: Nắm vững 3 phương pháp xóa thư mục chính: Chỉ xóa khỏi Git (giữ lại trên máy), xóa hoàn toàn khỏi cả Git và máy, và xóa khỏi Git đồng thời thêm vào
.gitignoređể bỏ qua vĩnh viễn. - Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như cách khôi phục thư mục bị xóa nhầm, rủi ro khi không sao lưu và cách tự động ignore nhiều thư mục cùng lúc.
Vì sao cần xóa thư mục khỏi Git trên Linux
Việc xóa thư mục khỏi Git trên Linux là bước quan trọng giúp dọn dẹp và tối ưu kho lưu trữ (repository). Trong quá trình phát triển, bạn có thể vô tình commit các thư mục tạm, file cá nhân hoặc dữ liệu nhạy cảm. Nếu không loại bỏ kịp thời, chúng sẽ khiến repository trở nên cồng kềnh, kém chuyên nghiệp và tiềm ẩn rủi ro bảo mật.
Dưới đây là những lý do phổ biến khiến bạn nên xóa thư mục khỏi Git:
- Loại bỏ file không cần thiết (dọn dẹp repository): Tránh để Git theo dõi các thư mục rác như node_modules/, build/, logs/, cache/… vốn làm tăng dung lượng repo và gây nhiễu khi xem lịch sử git log.
- Bảo vệ thông tin nhạy cảm: Xóa các file chứa mật khẩu, khóa API, chứng chỉ bảo mật hoặc cấu hình riêng (.env, .pem, .key…) nhằm hạn chế nguy cơ lộ dữ liệu khi public repository trên GitHub/GitLab.
- Khắc phục lỗi git add nhầm: Khi vô tình dùng git add . và thêm cả những thư mục không nên commit, việc xóa thư mục khỏi Git giúp sửa sai nhanh chóng.
- Nâng cao tính chuyên nghiệp của dự án: Loại bỏ file test, thư mục thực hành, dự án cũ hoặc file tạm giúp repository gọn gàng, dễ đọc hơn cho đồng nghiệp, khách hàng hoặc nhà tuyển dụng.
- Quản lý cache Git hiệu quả: Giải quyết trường hợp file đã bị xóa trên máy cục bộ nhưng Git vẫn tiếp tục theo dõi do còn tồn tại trong index (cache).

3 cách xóa thư mục khỏi Git trên Linux
1. Xóa thư mục khỏi Git nhưng giữ lại trên máy cục bộ
Nếu bạn muốn Git ngừng theo dõi thư mục nhưng vẫn giữ thư mục đó để sử dụng cục bộ, bạn hãy dùng lệnh:
git rm -r --cached ten_thu_muc/Giải thích:
- -r: Xóa đệ quy toàn bộ nội dung bên trong thư mục.
- –cached: Chỉ xóa khỏi Git index, không xóa trên hệ thống file.
Sau đó, bạn cần thực hiện tiếp các bước sau để cập nhật thay đổi lên kho lưu trữ từ xa (remote repo):
git commit -m "Xóa thư mục khỏi git nhưng giữ local"
git pushTrường hợp sử dụng: Phù hợp khi cần loại bỏ các thư mục như node_modules, venv/, logs/ khỏi Git nhưng vẫn cần sử dụng cục bộ.
2. Xóa thư mục khỏi Git và thư mục local
Nếu bạn muốn xóa hoàn toàn thư mục khỏi cả Git và hệ thống file, hãy chạy lệnh sau:
git rm -r ten_thu_muc/Lúc này, Git sẽ đánh dấu thư mục (và các file bên trong) để xóa trong commit kế tiếp. Sau đó bạn thực hiện commit:
git commit -m "Xóa hoàn toàn thư mục khỏi Git"
git pushLưu ý
3. Xóa thư mục khỏi Git và ignore vĩnh viễn
Sau khi xóa thư mục, nếu không muốn Git theo dõi lại thư mục đó, bạn nên thêm vào file .gitignore với các bước sau:
git rm -r --cached ten_thu_muc/
echo ten_thu_muc/ >> .gitignore
git add .gitignore
git commit -m "Xóa thư mục khỏi Git và ignore vĩnh viễn"
git pushCách này đảm bảo Git sẽ bỏ qua hoàn toàn thư mục trong các lần commit sau.
Ví dụ: Bạn có một thư mục work_day/ tạo ra từ quá trình biên dịch và bạn không muốn thư mục này xuất hiện trong Git.
Bước 1: Để xóa Vietnix_work khỏi Git nhưng vẫn giữ thư mục này trên máy tính, bạn thực hiện lệnh sau:
git rm -r --cached Vietnix_work/Bước 2: Bạn chạy lệnh sau để thêm tên thư mục vào file .gitignore để Git bỏ qua khi commit sau này:
echo Vietnix_work/ >> .gitignoreBước 3: Bạn commit cập nhật file .gitignore lên repository:
git add .gitignore
git commit -m "Bỏ Vietnix_work/ khỏi Git và thêm vào ignore"
git pushKhi đó, thư mục Vietnix_work sẽ bị xóa khỏi kho lưu trữ Git, giữ nguyên trên máy bạn và sau này Git sẽ không theo dõi/commit lại thư mục này mỗi khi bạn cập nhật dự án.

Câu hỏi thường gặp
Nếu lỡ xóa nhầm thư mục khỏi Git, có cách nào khôi phục lại không?
Bạn có thể sử dụng lệnh git checkout hoặc git restore để khôi phục lại thư mục đã bị xóa nếu chưa push lên remote. Nếu đã push lên remote, bạn cần kiểm tra lại lịch sử commit với lệnh git log, sau đó sử dụng git reset hoặc phục hồi từ commit cũ.
Có rủi ro nào khi xóa thư mục khỏi Git mà chưa backup dữ liệu không?
Bạn có thể mất toàn bộ dữ liệu nếu xóa cả trên local lẫn Git, khó phục hồi nếu đã push. Vì vậy bạn hãy backup thư mục quan trọng ra Cloud, ổ cứng rời,… trước khi thao tác xóa.
Có thể tự động ignore nhiều thư mục cùng lúc thay vì thao tác thủ công từng cái không?
Bạn có thể thêm nhiều dòng tên thư mục vào file .gitignore hoặc dùng các mẫu ký tự đại diện như *.log/ để bỏ qua nhóm thư mục/file cùng kiểu.
Việc xóa thư mục khỏi Git đúng cách giúp repository gọn gàng, tránh commit những dữ liệu không cần thiết và giảm rủi ro lộ thông tin. Tùy từng tình huống, bạn có thể lựa chọn xóa khỏi Git, xóa hoàn toàn hoặc kết hợp với .gitignore để kiểm soát chặt chẽ hơn. Nắm vững các lệnh git rm sẽ giúp bạn quản lý source code chuyên nghiệp và hiệu quả hơn trong quá trình làm việc với Git.




