Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Làm chủ git rm:Hướng dẫn đầy đủ để xóa tệp khỏi kho lưu trữ của bạn

Lệnh git rm xóa tệp khỏi kho lưu trữ Git. Lệnh này sẽ xóa một tệp khỏi hệ thống tệp của bạn, sau đó xóa tệp đó khỏi danh sách các tệp được kho lưu trữ Git theo dõi. Cờ –cached cho phép bạn xóa tệp khỏi kho lưu trữ Git mà không xóa tệp đó trên hệ thống tệp của bạn.

Làm cách nào để xóa tệp khỏi kho lưu trữ Git? Đó là một câu hỏi hay. Không phải lúc nào bạn cũng muốn một tệp là một phần của kho lưu trữ mãi mãi. Bạn có thể quyết định rằng một tệp không còn cần thiết đối với dự án và do đó bạn sẽ muốn xóa tệp đó khỏi kho lưu trữ Git.

Để xóa tệp khỏi kho Git, bạn có thể sử dụng lệnh git rm. Nó ngược lại với lệnh git add; nó xóa tập tin.

Trong hướng dẫn này, chúng ta sẽ thảo luận cách sử dụng lệnh git rm. Chúng tôi sẽ xem qua một ví dụ về lệnh git rm để cho bạn thấy nó hoạt động như thế nào. Hãy bắt đầu!

Cách quản lý tệp trong Git

Trước khi thảo luận về cách sử dụng lệnh git rm, chúng ta cần hiểu cách quản lý tệp trong hệ thống kiểm soát phiên bản Git.

Các tệp trong kho Git có thể được theo dõi hoặc không bị theo dõi.

Các tệp được theo dõi là các tệp đã được đưa vào cam kết git. Các tệp không bị theo dõi là các tệp chưa được đưa vào kho lưu trữ. Thông thường, các tệp không bị theo dõi là những tệp bạn đã tạo trước khi tạo cam kết.

Để thêm tệp vào cam kết Git, bạn có thể sử dụng lệnh git add. Điều này sẽ làm cho nó trở thành một tập tin được theo dõi. Nếu bạn muốn ngăn chặn việc theo dõi một tập tin, bạn có thể sử dụng lệnh git rm.

Lệnh git rm xóa một tệp hoặc nhóm tệp khỏi kho Git. Một tệp sẽ bị xóa khỏi cả máy của bạn và kho lưu trữ Git. Để bảo toàn tệp trên máy cục bộ của bạn, hãy sử dụng cờ –cached.

Nếu không có bất kỳ cờ nào, lệnh này sẽ xóa tệp khỏi cả kho Git và thư mục làm việc cục bộ của bạn. Điều này có nghĩa là nó xóa một tập tin, giống như lệnh rm của Linux xóa một tập tin khỏi máy tính.

Cách sử dụng đơn giản nhất của lệnh này là xóa một tập tin. Hãy xóa tệp có tên settings.json khỏi kho lưu trữ Git:

Lệnh này sẽ xóa settings.json khỏi khu vực theo dõi trong kho lưu trữ của chúng tôi. Bạn có thể sử dụng lệnh tương tự để xóa nhiều tệp. Để làm như vậy, hãy phân tách tên của các tệp hoặc thư mục bạn muốn xóa bằng dấu cách:

git rm settings.json .env

Thao tác này sẽ xóa các tệp settings.json và .env khỏi kho lưu trữ.

Theo mặc định, Git sẽ tiến hành kiểm tra an toàn khi bạn chạy lệnh rm để hủy giai đoạn và xóa đường dẫn. Điều này sẽ đảm bảo rằng các tệp trên nhánh hiện tại của bạn giống với các tệp trong chỉ mục dàn. Bạn có thể ghi đè hành vi này bằng cách sử dụng cờ -f hoặc –force:

Bạn chỉ nên sử dụng cờ -f khi bạn hoàn toàn chắc chắn rằng mình muốn xóa tệp. Nếu không, xung đột hợp nhất có thể xảy ra sau này. Nếu điều này xảy ra, bạn có thể sử dụng hướng dẫn của chúng tôi về cách giải quyết xung đột hợp nhất để giúp bạn.

Git rm –cached

Cờ Git rm –cached sẽ xóa một tệp khỏi khu vực tổ chức. Các tập tin từ thư mục làm việc sẽ vẫn còn nguyên. Điều này có nghĩa là bạn vẫn có bản sao của tệp cục bộ. Tệp sẽ bị xóa khỏi chỉ mục theo dõi dự án Git của bạn.

Hãy xóa tệp cây làm việc settings.json khỏi kho lưu trữ của chúng tôi nhưng giữ nó trong thư mục dự án của chúng tôi:

git rm --cached settings.json

Khi chúng tôi thực hiện cam kết tiếp theo, tệp settings.json sẽ bị xóa.

Miễn là có tệp tồn tại trong thư mục làm việc cục bộ của bạn, bạn có thể thêm tệp đó trở lại kho lưu trữ Git của mình. Bạn có thể làm như vậy bằng lệnh git add. Đọc thêm về git add trong hướng dẫn của chúng tôi về lệnh git add.

Cách hoàn tác lệnh git rm

Lệnh git rm chỉ cập nhật khu vực tổ chức và thư mục làm việc cho đến khi một cam kết được thực hiện. Điều này có nghĩa là bạn có thể hoàn nguyên lệnh. Để hoàn tác lệnh git rm, bạn có thể đặt lại kho lưu trữ của mình về lần xác nhận cuối cùng bằng cách sử dụng git reset:

Cam kết Git HEAD thể hiện cam kết cuối cùng trong kho lưu trữ của chúng tôi. Do đó, lệnh này sẽ hoàn nguyên kho lưu trữ của chúng tôi về lần xác nhận cuối cùng.

Bạn có thể hoàn nguyên lệnh git rm ngay cả khi bạn đã thực hiện các thay đổi đối với kho lưu trữ. Để làm như vậy, bạn có thể sử dụng lệnh git reset và chỉ định hàm băm của cam kết mà bạn muốn hoàn nguyên:

git reset a7e3cce9637c74281e6590003b39d3990bbb2731

Chúng tôi đang hoàn nguyên kho lưu trữ git về cam kết trước đó. Chuỗi các chữ cái sau từ “reset” là hàm băm cho lần xác nhận cuối cùng.

Sau khi hoàn nguyên kho lưu trữ, chúng tôi có thể xem kho lưu trữ đó xuất hiện như thế nào trước cam kết. Điều này có nghĩa là tập tin của chúng tôi vẫn sẽ được dàn dựng. Nói cách khác, lệnh git rm của chúng ta sẽ bị hủy.

Git rm so với rm

Lệnh git rm sẽ xóa một tệp khỏi cả máy đang làm việc của bạn và kho lưu trữ Git. Mặt khác, lệnh rm không xóa tệp khỏi kho lưu trữ Git.

Nếu bạn muốn xóa tệp khỏi kho Git, bạn phải sử dụng git rm. Điều này là do lệnh git rm thực thi các hướng dẫn để xóa tệp khỏi kho lưu trữ Git. Không phải tất cả các tệp trên hệ thống Linux đều nằm trong kho Git, vì vậy lệnh rm của Linux không xóa các tệp khỏi kho lưu trữ Git.

Kết luận

Lệnh git rm cho phép bạn xóa tệp khỏi kho Git và thư mục làm việc của bạn. Nếu bạn chỉ muốn xóa một tệp khỏi kho Git của mình, bạn có thể sử dụng cờ –cached.

Làm chủ git rm:Hướng dẫn đầy đủ để xóa tệp khỏi kho lưu trữ của bạn

"Nghề nghiệp đã bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi tham gia chương trình đào tạo. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với các giá trị và mục tiêu trong cuộc sống của mình!"

Venus, Kỹ sư phần mềm tại Rockbot

Tìm trận đấu Bootcamp của bạn

Bây giờ bạn đã sẵn sàng sử dụng lệnh git rm như một chuyên gia về dòng lệnh!

Để tìm hiểu thêm về cách làm việc với Git, hãy đọc hướng dẫn Cách tìm hiểu Git của chúng tôi.