git取消文件或文件夹追踪

2023-02-22 15:38:20 浏览数 (1)

一、公共设置(针对仓库生效,所有人共享该设置。被忽略的文件不会出现在仓库中)

  1. 创建仓库时,在本地仓库根目录,创建.gitignore文件,写入忽略规则。规则可以是文件名,或者正则表达式。git 对于 .gitignore配置文件是按行从上到下进行规则匹配的。对于.gitignore文件本身的修改也会被提交到远程端。
  2. 删除已经被追踪过的文件(远程仓库中对应的文件或文件夹会被删除)

.gitignore只能忽略那些原来没有被track的文件。已经被追踪的过的文件,需要先用如下语句删除追踪,再添加到.gitignore中防止下次被追踪。该操作会删除远程仓库中对应的文件或文件夹。

git rm –cached readme1.txt 删除readme1.txt的跟踪,并保留在本地。

git rm -r –cached dir1 删除dir1目录,并保留在本地。

git rm –f readme1.txt 删除readme1.txt的跟踪,并且删除本地文件。

二、本地设置(针对本地文件生效,不会影响其他人的跟踪设置)

  1. 将忽略规则写在 .git/info/exclude中,语法同.gitignore。exclude文件不会被提交到远程端。被设置为忽略的文件,本地修改不会提交远程端,但其他人的修改依然不受影响。适合忽略一些本地配置文件。
  2. 忽略已经被追踪过的文件

git update-index –assume-unchanged /path/file #设置忽略跟踪

git update-index –no-assume-unchanged /path/to/file #恢复跟踪

————补充分割线——-

本地忽略被追踪过的文件还可以使用以下设置:

git update-index –skip-worktree /path/file

assume-unchanged 与 skip-worktree 的区别如下:

(以下内容转载自:https://www.zhihu.com/question/25234996/answer/794679338)

assume-unchanged:这个会关闭文件与远程仓库的跟踪,认为这个文件远程仓库是不会修改,所以每次pull都是本地的文件

skip-worktree:这个不会关闭文件与远程仓库的跟踪,只是告诉Git不要跟踪对本地文件/文件夹的更改。如果远端仓库内容有变化,pull时会拉取最新的变化,并提示冲突,但因为没有跟踪本地更改,所以需要no-skip-worktree再合并最新的变化。

未经允许不得转载:肥猫博客 » git取消文件或文件夹追踪

0 人点赞