0


git取消文件或文件夹追踪

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

  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

本文转载自: https://blog.csdn.net/white_rabbit_2/article/details/124984375
版权归原作者 white_rabbit_2 所有, 如有侵权,请联系我们删除。

“git取消文件或文件夹追踪”的评论:

还没有评论