当我们但用git的时候,有时候发现本地的有些文件不想再进行跟踪了
但是我们以前已经提交过了这个文件,怎么能让git 取消跟踪了,
git 命令提供了两种解决方案,都可以达到目的,但是效果上还是有些细微差别的
先说第一种
假设我以前跟踪了框架文件中的 vendor 目录,但是现在我不想再跟踪它了,因这它完全可以使用 composer install来自动安装
命令如下
git rm -r --cached vendor //这个命令是保留本地的 vendor 目录,删除对应远程分支的 vendor 目录
git commit
git push
这里删除了之后,记得在 .ingrone 的忽略文件中加入 vendor的目录,以后提交就不会有 vendor的事了
以上命令的特点是 本地的 vendor目录是保留着的 但远程分支上的被删除掉了
如果 别人 git clone 这个远程的分支是没有 vendor这个目录的
第二种方法
git update-index –assume-unchanged file_path
- file_path 绝对路径
执行取消追踪命令, 带来效果:
1. 本地的当前分支取消了追踪
2. 本文文件不删除, 远程仓库仍是存在此文件。
3. 本次clone的所有分支都不追踪此文件。
4. 重新git clone后此文件仍是会被追踪。
5. 若想彻底取消并删除追踪文件
git rm file_path
二. 重新跟踪某个文件
git update-index –no-assume-unchanged file_path
- file_path绝对路径