Câu trả lời:
Nếu bạn chỉ sử dụng rm
, bạn sẽ cần phải theo dõi nó với git add <fileRemoved>
. git rm
làm điều này trong một bước.
Bạn cũng có thể sử dụng git rm --cached
tệp sẽ xóa tệp khỏi chỉ mục (sắp xếp tệp để xóa trong lần xác nhận tiếp theo), nhưng giữ bản sao của bạn trong hệ thống tệp cục bộ.
rm
(thay vì git rm
) và xóa nhiều tệp bằng cách sử dụng và bây giờ không muốn git
theo dõi những tệp đó. Có cách nào để hoàn nguyên các thay đổi? Tôi muốn git
bước đi rm
như bị loại bỏ vì tôi đã không sử dụng git rm
ở nơi đầu tiên.
Xóa các tệp bằng cách sử dụng rm
không phải là một vấn đề, nhưng nếu sau đó bạn muốn cam kết rằng tệp đã bị xóa, bạn sẽ phải thực hiện một cách git rm
nào đó, vì vậy bạn cũng có thể thực hiện theo cách đó ngay lập tức.
Ngoài ra, tùy thuộc vào trình bao của bạn, thực hiện git rm
sau khi xóa tệp, bạn sẽ không hoàn thành tab, do đó bạn sẽ phải tự đánh vần đường dẫn, trong khi nếu bạn git rm
vẫn tồn tại tệp, việc hoàn tất tab sẽ hoạt động như bình thường.
Xóa các tệp khỏi chỉ mục hoặc từ cây làm việc và chỉ mục. git rm sẽ không xóa một tập tin khỏi thư mục làm việc của bạn.
Đây là cách bạn có thể xóa một tệp bằng cách sử dụng rm -f
và sau đó xóa nó khỏi chỉ mục của bạn vớigit rm
$ rm -f index.html
$ git status -s
D index.html
$ git rm index.html
rm 'index.html'
$ git status -s
D index.html
Tuy nhiên, bạn có thể làm tất cả trong một lần chỉ với git rm
$ git status -s
$ git rm index.html
rm 'index.html'
$ ls
lib vendor
$ git status -s
D index.html
Thêm vào câu trả lời của Andy, có thêm tiện ích để git rm
:
An toàn : Khi thực hiện git rm
thay vì rm
, Git sẽ chặn việc xóa nếu có sự khác biệt giữa HEAD
phiên bản của tệp và chỉ mục dàn hoặc phiên bản cây làm việc. Khối này là một cơ chế an toàn để ngăn chặn loại bỏ các thay đổi đang diễn ra.
Bảo vệ : git rm --dry-run
. Tùy chọn này là một biện pháp bảo vệ sẽ thực thi git rm
lệnh nhưng không thực sự xóa các tệp. Thay vào đó, nó sẽ xuất ra những tập tin mà nó sẽ loại bỏ.
git reset --hard
và sau đó thực hiện kiểm tra tổng thể để thoát khỏi trạng thái đầu tách ra vì tôi biết tôi không có bất kỳ thay đổi nào không được cam kết. Nếu bạn chưa thực hiện các thay đổi của mình, bạn có thể muốn thực hiện git stash, nhưng tôi tương đối mới với git vì vậy tôi không biết lệnh chính xác. Nếu bạn đã đến đây vào hoặc sau năm 2014, tôi hy vọng câu trả lời này hữu ích cho bạn.