美文网首页
gitignore失效问题

gitignore失效问题

作者: 天很清 | 来源:发表于2018-10-17 18:40 被阅读0次

    一般项目下载下来都会有 .gitignore文件,不需要特别设置,但当你在开发中,想忽略某个文件时,就需要把这个文件路径添加到.gitignore文件中,但可能有时候可以成功忽略有时候又不可以,这是为什么呢?

    加入.gitignore中的文件路径是否生效,关键在于这个路径下的文件性质,是不是untracked

    什么是untracked的文件?在本地一个新建的文件,未执行git add之前就是untracked(当然,前提是编辑器不会在创建文件时自动帮你执行git add),那么这个新建的文件直接将路径添加到.gitignore中,即可生效。

    但如果一个文件已经执行过git add 或者 git commit,或者不是本地新建文件,加入.gitignore中就无法生效,需要重新恢复untracked状态才行。

    如果恢复一个文件为untracked,很简单,删除,然后在本地新建(记得提前备份),可以使用
    git rm --cached <file> 删除,这个时候文件就是untracked

    但通常本地文件untracked了,但远程同名文件还是tracked,一更新代码就覆盖了,这个就需要把远程的tracked的文件删掉。

    下面举个例子:
    远程文件库front根目录下local.js,代码下载下来也有个/d/front/local.js,这个时候你可能需要修改local.js做个性化配置,/d/front/.gitignore文件中没有添加local.js,但你希望git 能忽略local.js

    // 在项目根目录下,首先copy一份local.js
    zy@DESKTOP-MIQKPJL MINGW64 /d/front/local.js
    $ cp local.js local_default.js 
    // 编辑 .gitignore , 将 local.js路径加进入
    $ vim .gitignore  (不熟悉vim,可在编辑器中编辑)
    // 删除本地local.js
    $ git rm --cached lcoal.js
    // 提交修改,删除远程local.js
    $ git status
    $ git add .
    $ git commit -m "add local.js to gitignore"
    $ git push
    // 重新pull下代码
    $ cp local_default.js local.js
    // 现在,这个新建的local.js 可以在本地随便更改了
    
    

    相关文章

      网友评论

          本文标题:gitignore失效问题

          本文链接:https://www.haomeiwen.com/subject/envrzftx.html