当前位置: 首页 > 知识库问答 >
问题:

在已跟踪大量文件的现有存储库上应用.gitignore

空佐
2023-03-14

我的存储库中有一个现有的Visual Studio项目。我最近在我的项目下添加了一个.gitignore文件,我假设这告诉Git忽略文件中列出的文件。

我的问题是,所有这些文件都已经被跟踪了,据我所知,Git不会忽略一个已经被跟踪的文件,而这个文件在添加一个规则来忽略它之前就已经被跟踪了。

有人建议使用:git rm--cached并手动取消对它们的跟踪,但这将需要我永远逐个检查它们。

我曾想过删除存储库并重新创建它,但这次是在.gitignore文件存在的情况下,但必须有更好的方法来实现这一点。

共有3个答案

郤旭东
2023-03-14

按照此处的指定,您可以更新索引:

git update-index --assume-unchanged /path/to/file

通过这样做,文件将不会显示在git statusgit diff中。

要重新开始跟踪文件,您可以运行:

git update-index --no-assume-unchanged /path/to/file
尉迟边浩
2023-03-14

>

  • 创建一个.gitignore文件,为此,只需创建任何空白的.txt文件。

    然后,您必须更改其名称,在cmd上写入以下行(其中git.txt是您刚刚创建的文件的名称):

    重命名git.txt.gitignore

    然后您可以打开该文件并写入所有您想要永久忽略的未跟踪文件。比如,我的是这样的:

    ```

    OS junk files
    [Tt]humbs.db
    *.DS_Store
    
    #Visual Studio files
    *.[Oo]bj
    *.user
    *.aps
    *.pch
    *.vspscc
    *.vssscc
    *_i.c
    *_p.c
    *.ncb
    *.suo
    *.tlb
    *.tlh
    *.bak
    *.[Cc]ache
    *.ilk
    *.log
    *.lib
    *.sbr
    *.sdf
    *.pyc
    *.xml
    ipch/
    obj/
    [Bb]in
    [Dd]ebug*/
    [Rr]elease*/
    Ankh.NoLoad
    
    #Tooling
    _ReSharper*/
    *.resharper
    [Tt]est[Rr]esult*
    
    #Project files
    [Bb]uild/
    
    #Subversion files
    .svn
    
    # Office Temp Files
    ~$*
    

    GitHub提供了一系列有用的.gitignore文件

    一旦您有了这个,就需要像任何其他文件一样将它添加到您的git存储库中,只是它必须在存储库的根目录中。

    那么在您的终端中您必须写以下一行:

    git配置--全局核心.excludesfile~/.gitignore_global

    来自官方文件:

    您还可以创建一个全局的.gitignore文件,它是忽略您计算机上每个Git存储库中文件的规则列表。例如,您可以在~/.gitignore_global处创建文件,并向其添加一些规则。

    打开终端。在终端中运行以下命令:git config--global core.excludesfile~/.gitignore_global

    如果资源库已经存在,则必须运行以下命令:

    git rm -r --cached .
    git add .
    git commit -m ".gitignore is now working"
    

    如果步骤2不起作用,那么您应该编写您想要添加的文件的孔路线。

  • 董阳平
    2023-03-14

    这个答案解决了我的问题:

    首先,提交所有挂起的更改。

    然后运行以下命令:

    git rm -r --cached .
    

    这将从索引中删除所有内容,然后只需运行:

    git add .
    

    提交:

    git commit -m ".gitignore is now working"
    
     类似资料:
    • 我正在考虑在使用表存储时为我的应用程序实现一个审计跟踪。 我需要能够记录一个特定客户的所有操作和来自该客户的实体的所有操作。 我的第一个猜测是为每个客户创建一个表(Audits_CustomerXXX),并使用实体id和行键(datetime.max.ticks-datetime.now.ticks).ToString(“D19”)值作为分区键。当我的问题是某个实体发生了什么时,这很有效?例如,购

    • 如何在GitHub上配置存储库,以便在不克隆整个存储库的情况下安装程序(任何版本,将有两个存储库)。克隆将通过Linux完成。该程序打包在中。焦油gz格式。

    • 问题内容: 我需要存储大量的二进制文件(10-20 TB,每个文件范围从512 kb到100 MB)。 我需要知道Redis是否对我的系统有效。我的系统中需要以下属性: 高可用性 故障转移 分片 我打算使用一组商品硬件来尽可能降低成本。请提出使用Redis构建这样的系统的利弊。我还对Redis的高内存需求感到担忧。 问题答案: 我不会将Redis用于此类任务。其他产品将更适合IMO。 Redis是

    • 我正在用实时读取日志文件。这个效果很好。但每天都有一个日志循环,这意味着我的日志文件将被重命名,不再更改。将在同一位置创建新的日志文件。在我可以更改到新的日志文件之前,我需要完成当前日志文件的读取,使用没有问题,但是我如何才能发现文件名已更改? 我试着调用和,但这不起作用,因为-objects路径在创建后是固定的。 我还尝试使用WatchService,但附加到文件后也会导致ENTRY\u DEL

    • 使用指南 - 数据报告 - JSApi - 单页应用跟踪 一、概览 单页应用(SPA)是指在首次加载网页时加载浏览整个网站所需全部资源的网络应用或网站,所有的操作都在这张页面上完成,都由JavaScript来控制。 在传统网站上运行百度统计的跟踪代码hm.js没有任何问题,因为每次加载页面都会运行一次。但是对于SPA来说,页面的更新是通过JavaScript更新页面内容,而不是把整个页面重新加载一

    • 我正在finchley使用spring cloud。rc2和spring boot版本2以及sleuth和zipkin。 我有一个使用反应器项目的外观层。Facade调用服务并行,每个服务在Rabbit mq中存储一些跟踪信息。 问题是我在拉链金中看到一些跨度,如 我怎么能阻止这样的痕迹被捕获