git忽略已提交的文件

306 阅读2分钟

比如dist目录被提交了,如何忽略呢?

你可以按照以下步骤将 dist 目录从 Git 仓库中忽略:

  1. 将 dist 目录添加到 .gitignore 文件中
    打开你项目根目录下的 .gitignore 文件,如果没有就创建一个,然后添加以下内容:

    dist
    
  2. 从 Git 缓存中移除 dist 目录
    运行以下命令将 dist 目录从 Git 缓存中移除,这样它不会再被追踪:

    git rm -r --cached dist
    
  3. 提交更改
    现在将更改提交到仓库:

    git add .gitignore
    git commit -m "忽略 dist 目录"
    

这样,Git 就会忽略 dist 目录中的文件了。

但是git log里面已经多次记录过dist目录,会有影响吗

已经提交的历史记录无法直接删除或修改,但这不会影响你未来忽略 dist 目录的设置。历史记录中的 dist 目录依然存在,但在你将其从缓存中移除并添加到 .gitignore 文件后,新的提交将不会再包含 dist 目录中的文件。

如果你确实需要从所有历史记录中彻底移除 dist 目录,可以使用以下步骤,但请注意,这会重写历史记录,可能会对其他协作者造成影响:

  1. 使用 filter-branch 命令
    运行以下命令来重写历史记录并移除 dist 目录:

    git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch dist' --prune-empty --tag-name-filter cat -- --all
    
  2. 强制推送到远程仓库
    由于历史记录被重写,你需要强制推送更改到远程仓库:

    git push origin --force --all
    git push origin --force --tags
    
  3. 通知协作者
    如果你有其他协作者,请告知他们重新克隆仓库,因为历史记录被重写后,他们的本地仓库将与远程仓库不一致。

这样可以彻底移除所有历史记录中的 dist 目录,但请谨慎操作,因为重写历史记录可能会引起问题。