Trong Git, thuật ngữ rm là viết tắt của loại bỏ,xoá bỏ. Nó được sử dụng để loại bỏ các file riêng lẻ hoặc một bộ sưu tập các file. Chức năng chính của git rm là xóa các file được theo dõi khỏi chỉ mục Git. Ngoài ra, nó có thể được sử dụng để xóa các file khỏi cả thư mục làm việc và chỉ mục dàn dựng.
Các file được xóa phải lý tưởng(không bị ràng buộc) để nhánh dễ dàng loại bỏ. Không có cập nhật nào cho nội dung của chúng có thể được sắp xếp trong chỉ mục. Nếu không, quá trình loại bỏ có thể phức tạp và đôi khi nó sẽ không xảy ra. Nhưng nó có thể được thực hiện một cách cưỡng chế bằng tùy chọn -f .
Chúng ta sẽ tìm hiểu nó với ví dụ sau.
Nội dung chính
1. Lệnh git rm
Lệnh git rm được sử dụng để xóa các file khỏi cây làm việc và chỉ mục.
Nếu chúng ta muốn xóa file khỏi kho lưu trữ của mình. Sau đó, nó có thể được thực hiện bằng lệnh git rm. Hãy lấy một file tin newfile.txt để kiểm tra lệnh rm. Lệnh git rm sẽ được vận hành như sau:
git rm <Tên file>
Lệnh trên sẽ xóa file khỏi Git và kho lưu trữ. Lệnh git rm loại bỏ file không chỉ khỏi kho lưu trữ mà còn khỏi vùng dàn. Nếu chúng ta kiểm tra trạng thái của kho lưu trữ, thì nó sẽ hiển thị là đã bị xóa. Hãy xem xét đầu ra dưới đây:
Trong đầu ra ở trên, file newfile.txt đã bị xóa khỏi hệ thống kiểm soát phiên bản. Vì vậy, kho lưu trữ và trạng thái được hiển thị là đã xóa. Nếu chúng ta chỉ sử dụng lệnh rm , thì nó sẽ không xóa vĩnh viễn file khỏi Git. Nó có thể được theo dõi trong khu vực dàn dựng. Hãy xem xét đầu ra dưới đây:
Trong đầu ra ở trên, file newfile2.txt đã bị xóa. Nhưng khi chúng ta kiểm tra trạng thái của kho lưu trữ, chúng ta có thể theo dõi file trong khu vực dàn dựng. Nó có nghĩa là newfile2 chưa bị xóa khỏi khu vực dàn dựng và nó cũng có sẵn trong kho lưu trữ. Chúng ta có thể lấy lại nó trên hệ thống kiểm soát phiên bản bằng cách commit. Để commit file, đầu tiên, thêm nó vào chỉ mục và sau đó commit nó. Để thêm file này vào chỉ mục, hãy chạy lệnh dưới đây:
git add newfile2.txt
Lệnh trên sẽ thêm file vào chỉ mục. Để commit, hãy chạy lệnh dưới đây:
git commit -m "tin nhắn commit."
Nó sẽ commit file và cung cấp file đó cho hệ thống kiểm soát phiên bản. Hãy xem xét đầu ra dưới đây:
Trong đầu ra ở trên, chúng ta đang truy xuất file từ khu vực dàn dựng vào thư mục của chúng ta. Newfile2.txt được thêm lại vào kho của chúng ta.
2. Git rm được lưu vào bộ nhớ đệm
Đôi khi bạn muốn xóa file khỏi Git nhưng vẫn giữ file trong kho lưu trữ cục bộ của mình. Nói cách khác, bạn không muốn chia sẻ file của mình trên Git. Git cho phép bạn làm như vậy. Tùy chọn được lưu trong bộ nhớ cache được sử dụng trong trường hợp này. Nó chỉ định rằng hoạt động loại bỏ sẽ chỉ hoạt động trên chỉ mục dàn dựng chứ không phải trên kho lưu trữ. Lệnh git rm với tùy chọn được lưu trong bộ nhớ cache sẽ được sử dụng như:
git rm --cached <tên file>
Lệnh trên sẽ xóa một file khỏi hệ thống kiểm soát phiên bản. file đã xóa sẽ vẫn còn trong kho lưu trữ. Bằng cách nào đó, lệnh này sẽ hoạt động như lệnh rm. Hãy hiểu nó với một ví dụ.
Giả sử chúng ta muốn xóa một file khỏi Git, lấy newfile1.txt để thực hiện thao tác xóa file này, sử dụng lệnh dưới đây:
git rm --cached newfile1.txt
Lệnh trên sẽ xóa file khỏi hệ thống kiểm soát phiên bản, nhưng vẫn có thể theo dõi file trong kho lưu trữ. Nó cũng có thể được thêm lại trên hệ thống kiểm soát phiên bản. Để kiểm tra trạng thái file, hãy sử dụng lệnh trạng thái như:
git status
Hãy xem xét đầu ra dưới đây:
Như chúng ta có thể thấy từ đầu ra ở trên, file newfile1.txt bị xóa khỏi hệ thống kiểm soát phiên bản, nhưng nó có thể được theo dõi trong kho lưu trữ. file này có sẵn trên hệ thống kiểm soát phiên bản dưới dạng file chưa được kiểm soát. Chúng ta có thể theo dõi nó bằng cách commit nó.
3. Hoàn lại lệnh git rm
Việc thực thi lệnh git rm không phải là vĩnh viễn; nó có thể được hoàn nguyên sau khi thực thi. Những thay đổi này không thể được duy trì cho đến khi một commit mới được thực hiện trên kho lưu trữ. Chúng ta có thể hoàn tác lệnh git rm. Có một số cách để làm như vậy. Cách thông thường và dễ hiểu nhất là lệnh git reset. Lệnh git reset sẽ được sử dụng như sau:
git reset HEAD
Hoặc chúng ta cũng có thể sử dụng:
git reset --hard
Lệnh trên sẽ đặt lại vị trí của Head. Vì vậy, nó sẽ có được vị trí của điểm trước đó của nó. Hãy xem xét đầu ra dưới đây:
Từ đầu ra ở trên, chúng ta có thể thấy rằng file đã được đặt lại thành công về vị trí cũ của nó.
Có một cách khác để hoàn tác lệnh git rm. Chúng ta cũng có thể làm điều đó bằng lệnh git checkout. checkout có tác dụng tương tự và khôi phục phiên bản mới nhất của file từ HEAD. Nó sẽ được sử dụng như sau:
git checkout
4. Giới hạn của lệnh git rm
Git rm chỉ được vận hành trên nhánh hiện tại. Quá trình loại bỏ chỉ được áp dụng cho thư mục làm việc và cây dàn dựng. Nó không tồn tại trong lịch sử kho lưu trữ cho đến khi một commit mới được tạo.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Tài liệu từ cafedev:
- Full series tự học Git từ cơ bản tới nâng cao tại đây nha.
- Ebook về Git tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!