我在VPS上部署了一个Rails应用程序。我在bitbucket上使用我的git repo来同步我的工作和家用计算机上的文件,因此它会被不必要的生产二进制文件所破坏。
我修改了.gitignore文件,因此它排除了我的应用中的某些路径被跟踪。但是,当我将我的更改推送到远程仓库(从那里开始使用生产版本)时,它会继续跟踪.gitignored文件和git clone使用垃圾复制所有内容。
如何用我新清理的本地主服务器(我是通过re-init git创建)替换远程repo master分支?或者如何从跟踪树.gitignored文件中删除远程仓库? 谢谢你非常非常
答案 0 :(得分:3)
我真的不明白你的问题,但如果你想删除所有符合.gitignore内容的文件,你可以:
git ls-files -i --exclude-standard
其中显示了文件,如果您确实要删除它们:
git rm $(git ls-files -i --exclude-standard)
答案 1 :(得分:1)
如果索引跟踪.gitignore匹配的某些文件,则修改.gitignore文件是不够的。
当索引跟踪它们时,它们位于签出树中,因此在提交等中。
如果您想“删除”这些文件,最好选择使用专用形式的git rm
来实现此目的:
# Rinse, repeat for each file, or use several paths/globs/etc
git rm --cached path/to/unwanted/file
然后提交结果。 --cached
选项意味着从仅索引中删除此文件,而不是工作树。