Terkadang git menyarankan git rm --cached
untuk menghapus stage suatu file, terkadang git reset HEAD file
. Kapan saya harus menggunakan yang mana?
EDIT:
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
membatalkan add
? Menurut Anda bagaimana rm
seharusnya bersikap?
git init
tidak ada HEAD
untuk diatur ulang.
rm
menyiratkan penghapusan dalam konteks unix. Bukan kebalikan dari menambah indeks. Fungsi untuk menghapus file tidak boleh dibebani dengan fungsi untuk mengubah status pementasan. Jika ada detail implementasi yang membuat mereka nyaman untuk digabungkan, itu hanya menunjuk pada kurangnya lapisan abstraksi di git, yang akan membuat kegunaan lebih jelas.
git rm
bisa kedua tahap sebuah penghapusan dan juga unstage sebuah penambahan )