2

我在 VPS 上部署了一个 Rails 应用程序。我在 bitbucket 上使用我的 git 存储库来同步我的工作和家庭计算机上的文件,因此它在生产中的二进制文件中被不必要的丢弃。

我修改了 .gitignore 文件,因此它排除了我的应用程序中的一些路径被跟踪。但是,当我将更改推送到远程仓库(从那里 capistrano 获取生产版本)时,它会继续跟踪 .gitignored 文件并 git clone 复制所有带有垃圾的东西。

如何用我新清理的本地 master(我由 re-init git 创建)替换远程 repo master 分支?或者如何从跟踪树 .gitignored 文件中删除远程仓库?非常非常感谢

4

2 回答 2

3

我不太明白你的问题,但如果你想删除所有与你的 .gitignore 内容匹配的文件,你可以:

git ls-files -i --exclude-standard

它显示了文件,如果你真的想删除它们:

git rm $(git ls-files -i --exclude-standard)
于 2013-05-31T12:08:42.103 回答
1

如果 .gitignore 匹配的某些文件被索引跟踪,那么修改 .gitignore 文件是不够的。

由于它们被索引跟踪,它们在签出树中,因此在提交等中。

如果您想“取消跟踪”这些文件,最好的选择是git rm为此目的使用专用形式:

# Rinse, repeat for each file, or use several paths/globs/etc
git rm --cached path/to/unwanted/file

然后提交结果。该选项表示仅从索引--cached中删除此文件,而不是从工作树中删除。

于 2013-05-31T11:37:17.177 回答