开发人员在服务器上添加了一个图像目录,而没有将该文件夹添加到.gitignore文件中.当我做了一个git pull它拉了那些文件(数百个文件).我将文件夹添加到服务器上的.gitignore,但不是我的本地系统.然后我在本地(永久)删除了文件.当我执行git状态时,所有这些已删除的文件仍会显示.我怎么能抑制他们出现?
更新: 感谢所有的帮助.为了确保没有错过理解:我确实想要将文件保留在服务器上,只是想从git中删除它们.
我发现这是完成任务最简单的方法.
$> git add -u(or you may use --update)
原始状态:
$> git status . On branch master Changes to be committed: (use "git reset HEAD..." to unstage) deleted: .ipynb_checkpoints/Untitled-checkpoint.ipynb deleted: CVPR 1 hr tute-Backup.ipynb deleted: cifar10-test.t7 deleted: cifar10-train.t7 deleted: cifar10torchsmall.zip deleted: create_advr.lua deleted: criterion_cifar10_lr_0.001_epoch_13.t7 deleted: train_cifar10.lua deleted: trained_net_cifar10_lr_0.001_epoch_13.t7
因此,要从当前目录中删除所有已删除的文件,我使用.
$> git add -u . $> git commit -m "removing deleted files from tracking" $> git push origin master
最终国家:
$> git status . On branch master nothing to commit, working directory clean
希望这可以帮助 :)
您可能需要git rm
删除的文件.来自Pro Git:
删除文件
要从Git中删除文件,您必须将其从跟踪文件中删除(更准确地说,将其从暂存区域中删除)然后提交.该
git rm
命令执行此操作,并从工作目录中删除该文件,因此下次您不会将其视为未跟踪文件.如果您只是从工作目录中删除该文件,它将显示在输出的"已更改但未更新"(即未分级)区域下
git status
:$ rm grit.gemspec $ git status # On branch master # # Changed but not updated: # (use "git add/rm..." to update what will be committed) # # deleted: grit.gemspec # 然后,如果你运行
git rm
,它会暂停文件的删除:$ git rm grit.gemspec rm 'grit.gemspec' $ git status # On branch master # # Changes to be committed: # (use "git reset HEAD..." to unstage) # # deleted: grit.gemspec # 下次提交时,文件将消失,不再被跟踪.如果您已修改文件并将其添加到索引中,则必须使用该
-f
选项强制删除该文件.这是一项安全功能,可防止意外删除尚未记录在快照中且无法从Git恢复的数据.