.gitignore
将阻止未跟踪文件被添加(没有add -f
)到 git 跟踪的文件集,但是 git 将继续跟踪已经被跟踪的任何文件。
要停止跟踪文件,您需要将其从索引中删除。这可以通过此命令实现。
git rm --cached <file>
从头修订中删除文件将在下次提交时发生。
警告:虽然这不会从本地删除物理文件,但它会在下一个git pull
删除其他开发人员计算机上的文件。
下面的一系列命令将从 Git 索引中删除所有项目(而不是从工作目录或本地存储库中删除),然后更新 Git 索引,同时遵守 git 忽略。 PS。 Index = 缓存
第一:
git rm -r --cached .
git add .
然后:
git commit -am "Remove ignored files"
git update-index为我做的工作:
git update-index --assume-unchanged <file>
注意:此解决方案实际上独立于.gitignore
因为 gitignore 仅适用于未跟踪的文件。
编辑:由于此答案已过帐,因此创建了一个新选项,应该首选。您应该使用--skip-worktree
,它用于用户不想再提交的已修改跟踪文件,并保持--assume-unchanged
性能,以防止 git 检查大型跟踪文件的状态。有关详细信息,请参阅https://stackoverflow.com/a/13631525/717372
git update-index --skip-worktree <file>
.gitignore
将阻止未跟踪文件被添加(没有add -f
)到 git 跟踪的文件集,但是 git 将继续跟踪已经被跟踪的任何文件。
要停止跟踪文件,您需要将其从索引中删除。这可以通过此命令实现。
git rm --cached <file>
从头修订中删除文件将在下次提交时发生。
警告:虽然这不会从本地删除物理文件,但它会在下一个git pull
删除其他开发人员计算机上的文件。
下面的一系列命令将从 Git 索引中删除所有项目(而不是从工作目录或本地存储库中删除),然后更新 Git 索引,同时遵守 git 忽略。 PS。 Index = 缓存
第一:
git rm -r --cached .
git add .
然后:
git commit -am "Remove ignored files"
git update-index为我做的工作:
git update-index --assume-unchanged <file>
注意:此解决方案实际上独立于.gitignore
因为 gitignore 仅适用于未跟踪的文件。
编辑:由于此答案已过帐,因此创建了一个新选项,应该首选。您应该使用--skip-worktree
,它用于用户不想再提交的已修改跟踪文件,并保持--assume-unchanged
性能,以防止 git 检查大型跟踪文件的状态。有关详细信息,请参阅https://stackoverflow.com/a/13631525/717372
git update-index --skip-worktree <file>