跟踪github存储库中未跟踪目录中的文件

时间:2012-07-10 08:54:15

标签: git github

当我克隆advimage存储库时,img/目录似乎未跟踪。

gokmen@rodosto advimage % git st
?? img/
gokmen@rodosto advimage % git status
# On branch develop
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   img/
nothing added to commit but untracked files present (use "git add" to track)

此目录不为空,img/中有一个名为 sample.gif 的跟踪文件。我尝试添加 一个空文件:

gokmen@rodosto advimage % touch img/hede
gokmen@rodosto advimage % git add img/hede 
gokmen@rodosto advimage % git st
A  img/hede
?? img/
gokmen@rodosto advimage % rm -rf img 
gokmen@rodosto advimage % git st
AD img/hede
 D img/sample.gif
gokmen@rodosto advimage % git reset
Unstaged changes after reset:
M   img/sample.gif
gokmen@rodosto advimage % git st
 D img/sample.gif
gokmen@rodosto advimage % 

git fsck --full输出为空。为什么我无法删除img/列表中的git status

1 个答案:

答案 0 :(得分:2)

您从文件系统中删除了文件,但未从存储库的索引中删除它们。发出git rm -r img/ && git commit以完全删除img/目录。

发生了什么:

gokmen@rodosto advimage % rm -rf img 
gokmen@rodosto advimage % git st
AD img/hede
 D img/sample.gif

AD img/hede建议您提交新文件img/hede,然后在不使用git rm的情况下将其删除。 D img/sample.gif建议您在不使用img/sample.gif的情况下删除git rm

gokmen@rodosto advimage % git reset
Unstaged changes after reset:
M   img/sample.gif

git reset表示git已停止跟踪img/hederm -rf命令未提交并删除该img/sample.gif。之前仍会跟踪(并修改)git reset --hard。如果你发布了gokmen@rodosto advimage % git st D img/sample.gif ,你会看到没有输出,但是img / sample.gif会回到工作目录中。

img/sample.gif

这表示您使用rm而不是git rm删除了git rm img/sample.gif && git commit。此时,您可以发出{{1}}来删除该文件。