代码之家  ›  专栏  ›  技术社区  ›  Leo

为什么不呢。GIT忽略帮助GIT忽略主机.bLaHa.cache文件?

  •  1
  • Leo  · 技术社区  · 6 年前

    有一个文件被 git ,但现在文件在 .gitignore 列表。

    git status 在编辑之后。你怎么强迫 吉特

    1 回复  |  直到 7 年前
        1
  •  9
  •   Skeets    5 年前

    .gitignore 将阻止添加未跟踪的文件(没有 add -f )但git将继续跟踪任何已被跟踪的文件。

    要停止跟踪文件,需要将其从索引中删除。这可以通过这个命令来实现。

    git rm --cached <file>
    

    如果要删除整个文件夹,则需要递归删除其中的所有文件。

    git rm -r --cached <folder>
    

    下一次提交时,将从head修订中删除该文件。

    git pull .

        2
  •  7
  •   Arslan Ahmad khan    4 年前

    下面的一系列命令将从Git索引(不是从工作目录或本地repo)中删除所有项,然后更新Git索引,同时忽略Git。

    第一:

    git rm -r --cached . 
    git add .
    

    然后:

    git commit -am "Remove ignored files"
    

    git rm -r --cached . && git add . && git commit -am "Remove ignored files"
    
        3
  •  3
  •   Community CDub    4 年前

    git更新索引 为我做这份工作:

    git update-index --assume-unchanged <file>
    

    注: .gitignore 因为gitinore只适用于未跟踪的文件。


    因为这个答案已经公布,一个新的选项已经创建,应该是首选。你应该使用 --skip-worktree 它用于用户不想再提交和保留的已修改的跟踪文件 --assume-unchanged https://stackoverflow.com/a/13631525/717372

    git update-index --skip-worktree <file>
    
        4
  •  2
  •   curiousBoy    6 年前
    git ls-files --ignored --exclude-standard -z | xargs -0 git rm --cached
    git commit -am "Remove ignored files"
    

    这将获取被忽略文件的列表并将其从索引中删除,然后提交更改。

        5
  •  0
  •   RajVimalC    5 年前

    我总是使用这个命令来删除那些未跟踪的文件。 单行,Unix风格,干净输出:

    git ls-files --ignored --exclude-standard | sed 's/.*/"&"/' | xargs git rm -r --cached
    

    git rm -r --cached 从索引中删除路径/文件/目录。

        6
  •  0
  •   DC.Skells    5 年前

    把它移出去,提交,然后再移回来。这在过去对我很有效。可能有一种“gittier”方法可以实现这一点。