git仓库第一次提交的时候,将部分不想跟踪的文件(文件夹也是文件的一种),添加到根目录下.gitignore中可以让git不跟踪文件;然后add、commit一切都是正常的。

    但是当文件和目录已经被提交到仓库中,我想取消跟踪文件和目录可以么,潜意识中我是认为不可以的,甚至于去年还和同事争论过已经加入版本控制的文件再添加到.gitignore中是没有效果的,项目比较感,只是他实现了,我没问是怎么做到的。其实我也完全没说错~至少是已经跟踪的文件,再添加的.gitignore中这样是不能使得git不跟踪文件的。
    最近需要解决这个问题,好生的上网查了下,发现是可以取消git跟踪文件
    网上大部分都说
    git rm -r -n —cached 文件/或者是目录 【不会删除文件,只是列出会被删除的列表】
    git rm -r —cached 文件/或者是目录
    git commit -m “描述信息”
    试了好几次,都没成功,也许是我的理解能力不够,现记录一次。
    -r 表示递归
    -n 表示先不删除,只是列出文件

    1.首先 git rm -r -n —cached 文件
    只是为了列出你需要取消跟踪的文件,可以查看列表,检查下是否有误操作导致一些不应该被取消的文件取消了,是为了再次确认的。
    2. git rm -r —cached 文件
    才是真正的取消缓存不想要跟踪的文件
    3.在本地仓库的根目录下新建.gitignore 文件。 vi .gitignore
    添加你希望忽略的文件/目录
    gitignore文件配置记得不是太详细,有需要再查询

    4.git commit
    提交后,在2步中希望忽略的文件和目录,就不会再
    5.git push origin

    这时候我再修改 d1/2.txt,d1目录下再新建文件,使用 git status查看终于不再提示,有暂存区未被提交的文件了。

    ————————————————
    版权声明:本文为CSDN博主「sun2009」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:[https://blog.csdn.net/sun2009
    /article/details/70198580](https://blog.csdn.net/sun2009_/article/details/70198580)