根据新的gitignore从git跟踪文件中删除

根据新的gitignore从git跟踪文件中删除,git,Git,我在VPS上部署了一个Rails应用程序。我使用bitbucket上的git repo同步工作和家庭计算机上的文件,因此它会被不必要的生产二进制文件破坏 我修改了.gitignore文件,因此它将我的应用程序中的一些路径排除在跟踪之外。但当我将我的更改推送到远程repo(capistrano从那里获取生产版本)时,它会跟踪.git忽略的文件和git克隆,用垃圾复制所有内容 如何用我新清理的本地主机(由re init git创建)替换远程回购主机分支上的主机?或者如何使远程回购从跟踪树.git文件

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

我修改了.gitignore文件,因此它将我的应用程序中的一些路径排除在跟踪之外。但当我将我的更改推送到远程repo(capistrano从那里获取生产版本)时,它会跟踪.git忽略的文件和git克隆,用垃圾复制所有内容

如何用我新清理的本地主机(由re init git创建)替换远程回购主机分支上的主机?或者如何使远程回购从跟踪树.git文件中删除?
非常感谢

如果索引跟踪了一些与.gitignore匹配的文件,那么修改.gitignore文件是不够的

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

如果要“取消跟踪”这些文件,最好的选择是为此使用专用的
git-rm

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

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

如果索引跟踪与.gitignore匹配的某些文件,则仅修改.gitignore文件是不够的

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

如果要“取消跟踪”这些文件,最好的选择是为此使用专用的
git-rm

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

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

我不太理解您的问题,但是如果您想删除与.git文件内容匹配的所有文件,您可以:

git ls-files -i --exclude-standard
这将显示文件,如果确实要删除这些文件:

git rm $(git ls-files -i --exclude-standard)

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

git ls-files -i --exclude-standard
这将显示文件,如果确实要删除这些文件:

git rm $(git ls-files -i --exclude-standard)

我认为你想“取消跟踪”一些文件吗?编辑:看到我的回答了吗?我接受了吗?你想“取消跟踪”一些文件吗?编辑:看到我的答案了吗?很抱歉我不太清楚,我的英语还是有点模棱两可。我知道如何从本地索引中删除文件,但我的capistrano部署脚本从bitbucket repo克隆了我的应用程序的生产版本,而bitbucket repo中含有大量JPEG。所以我需要从远程索引中删除不必要的文件嗯,是的,那又怎么样?这是一样的。只需将修改后的索引推到远程。很抱歉我不清楚:我的英语仍然有点模棱两可。我知道如何从本地索引中删除文件,但我的capistrano部署脚本从bitbucket repo克隆了我的应用程序的生产版本,而bitbucket repo中含有大量JPEG。所以我需要从远程索引中删除不必要的文件嗯,是的,那又怎么样?这是一样的。只需将修改后的索引推到远程。谢谢,'git rm$(git ls files-i--exclude standard')在windows上不起作用,还有其他选择吗?好的,我所做的
git ls files-i--exclude standard>。/gitinoreremovers.log
然后使用
xargs git rm<../gitinoreremovers.log
进行清理,谢谢,'git rm$(git ls files-i--exclude standard)“在windows上不起作用,还有其他选择吗?好的,我所做的
git ls files-i--exclude standard>。/gitinoreremovers.log
然后使用
xargs git rm<../gitinoreremovers.log