Đôi khi git đề nghị git rm --cachedđể unstst một tập tin, đôi khi git reset HEAD file. Khi nào nên sử dụng?
BIÊN TẬP:
D:\code\gt2>git init
Initialized empty Git repository in D:/code/gt2/.git/
D:\code\gt2>touch a
D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# a
nothing added to commit but untracked files present (use "git add" to track)
D:\code\gt2>git add a
D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: a
#
D:\code\gt2>git commit -m a
[master (root-commit) c271e05] a
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
D:\code\gt2>touch b
D:\code\gt2>git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# b
nothing added to commit but untracked files present (use "git add" to track)
D:\code\gt2>git add b
D:\code\gt2>git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
rmđể hoàn tác addkhông? Bạn nghĩ rmnên cư xử thế nào?
git initkhông có HEADđể thiết lập lại.
rmngụ ý xóa trong một bối cảnh unix. Nó không đối nghịch với việc thêm vào chỉ mục. Một chức năng để loại bỏ các tập tin không nên bị quá tải với các chức năng để thay đổi trạng thái dàn. Nếu có các chi tiết triển khai làm cho những thứ đó thuận tiện để kết hợp, điều đó chỉ đơn giản chỉ ra việc thiếu một lớp trừu tượng chu đáo trong git, điều này sẽ làm cho tính khả dụng rõ ràng.
git rmcó thể cả giai đoạn một xóa và cũng unstage một bổ sung )