Đô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 add
không? Bạn nghĩ rm
nên cư xử thế nào?
git init
không có HEAD
để thiết lập lại.
rm
ngụ ý 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 rm
có thể cả giai đoạn một xóa và cũng unstage một bổ sung )