我的初始提交包含一些日志文件。 我已将*log添加到我的.gitignore ,现在我想从我的存储库中删除日志文件。

git rm mylogfile.log

将从存储库中删除文件,但也将从本地文件系统中删除它。

如何在删除文件本地副本的情况下从存储库中删除此文件?


#1楼

要从repo中删除整个文件夹(如Resharper文件),请执行以下操作:

git rm -r --cached folderName

我已经提交了一些resharper文件,并且不希望这些文件持续存在于其他项目用户。


#2楼

从man文件 :

当给出--cached ,分阶段内容必须匹配分支的尖端或磁盘上的文件,从而允许仅从索引中删除文件。

因此,对于单个文件:

git rm --cached mylogfile.log

并为一个目录:

git rm --cached -r mydirectory

#3楼

更通用的解决方案:

  1. 编辑.gitignore文件。

    ECHO mylogfile.log >> .gitignore

  2. 从索引中删除所有项目。

    git rm -r -f --cached .

  3. 重建索引。

    git add .

  4. 进行新的提交

    git commit -m "Removed mylogfile.log"


#4楼

Git允许您通过假设它们不变来忽略这些文件。 这是通过运行git update-index --assume-unchanged path/to/file.txt命令来完成的。 一旦标记文件,git将完全忽略该文件的任何更改; 它们不会在运行git status或git diff时出现,也不会被提交。

(来自https://help.github.com/articles/ignoring-files )

因此,不要删除它,而是永远忽略对它的更改。 我认为这只适用于本地,所以除非他们运行与上面相同的命令,否则同事仍然可以看到它的变化。 (仍然需要验证这一点。)

注意:这不是直接回答问题,而是基于其他答案的评论中的后续问题。


#5楼

您还可以根据.gitignore从存储库中删除文件,而不从本地文件系统中删除它们:

git rm --cached `git ls-files -i -X .gitignore`

或者,在Windows Powershell上:

git rm --cached $(git ls-files -i -X .gitignore)

#6楼

根据我的答案: https : //stackoverflow.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository

要仅从git存储库中删除文件夹/目录或文件,而不是从本地尝试3个简单的步骤。


删除目录的步骤

git rm -r --cached File-or-FolderName
git commit -m "Removed folder from repository"
git push origin master

在下次提交中忽略该文件夹的步骤

要在下次提交时忽略该文件夹,请在root中创建一个名为.gitignore的文件,并将该文件夹名称放入其中。 您可以根据需要添加任意数量

.gitignore文件将如下所示

/FolderName


#7楼

以上答案对我不起作用。 我使用filter-branch删除所有提交的文件。

使用以下命令从git存储库中删除文件:

git filter-branch --tree-filter 'rm  file'

使用以下命令从git存储库中删除文件夹:

git filter-branch --tree-filter 'rm -rf directory'

这将从所有提交中删除目录或文件。

您可以使用以下命令指定提交:

git filter-branch --tree-filter 'rm -rf directory' HEAD

或范围:

git filter-branch --tree-filter 'rm -rf vendor/gems' t49dse..HEAD

要将所有内容推送到远程,您可以:

git push origin master --force

#8楼

如果您只想解开文件而不是从本地和远程仓库中删除,请使用以下命令:

git update-index --assume-unchanged  file_name_with_path

#9楼

此外,如果您提交了敏感数据(例如包含密码的文件),则应将其从存储库的历史记录中完全删除。 以下是解释如何执行此操作的指南: http : //help.github.com/remove-sensitive-data/

从Git存储库中删除文件而不从本地文件系统中删除它相关推荐

  1. 如何将Git存储库克隆到特定文件夹?

    git clone git@github.com:whatever执行git clone git@github.com:whatever命令git clone git@github.com:whate ...

  2. Git 基础知识 - 获取 Git 存储库

    Git 基础知识 - 获取 Git 存储库 获取 Git 存储库 初始化现有目录中的存储库 克隆现有存储库 如果你只能读一章来开始使用 Git,就是这样.本章涵盖了你完成绝大多数事情所需的基本命令,这 ...

  3. 在Git存储库中查找并恢复已删除的文件

    假设我在Git存储库中. 我删除文件并提交更改. 我继续工作并做出更多承诺. 然后,我发现需要还原该文件. 我知道我可以使用git checkout HEAD^ foo.bar来签出文件,但是我真的不 ...

  4. 如何从 Git 存储库中删除文件?

    问: 如何从我的存储库中删除 "file1.txt"? 答1: huntsbot.com – 程序员副业首选,一站式外包任务.远程工作.创意产品分享订阅平台. 使用 git rm. ...

  5. 如何仅从git存储库中稀疏签出单个文件?

    如何从git仓库中检出一个文件? #1楼 git checkout branch_or_version-路径/文件 示例: git checkout HEAD -- main.c #2楼 如果您已经有 ...

  6. .git文件夹_将Git存储库中的文件夹转换为全新的存储库

    前提 如果您创建存储库的新克隆,则在将文件夹拆分到单独的存储库时,不会丢失任何Git历史记录或更改. 步骤 打开终端. 将当前工作目录更改为要创建新存储库的位置. 克隆包含子文件夹的存储库. $ gi ...

  7. 将子目录分离(移动)到单独的Git存储库中

    我有一个Git存储库,其中包含许多子目录. 现在,我发现一个子目录与另一个子目录无关,应该将其分离到单独的存储库中. 如何在保留子目录中文件历史记录的同时执行此操作? 我想我可以制作一个克隆并删除每个 ...

  8. git-secret:在 Git 存储库中加密和存储密钥(下)

    在之前的文章中(点击此处查看上一篇文章),我们了解了如何识别包含密钥的文件,将密钥添加到 .gitignore ,通过 git-secret 进行加密,以及将加密文件提交到存储库.在本篇文章中,将带你 ...

  9. git 初始化git存储库_什么不保存到Git存储库中

    git 初始化git存储库 You should not commit these four types of files into your Git repository. 您不应将这四种类型的文件 ...

最新文章

  1. css position的父级,css position absolute 相对于父元素的设置方式
  2. np.random.choice()用法
  3. 李宏毅机器学习作业2:Winner还是Losser(含训练数据)
  4. JavaScript基础14-day16【事件委派、事件绑定、事件传播、滚轮事件、键盘事件、键盘移动div】
  5. “快准顺”而不是“信达雅”
  6. pythontuple数据类型_数据类型-元组Tuple
  7. 服务器物品展示框刷物品,我的世界1period;11period;2展示框刷物品bug | 手游网游页游攻略大全...
  8. Fiddler Everywhere全平台抓包调试工具安装和使用(一)
  9. python语言的单行注释以井号开头_python-注释
  10. oracle11gr2架构图,Oracle 11g R2 体系结构
  11. Java 并发编程之同步工具类栅栏 CyclicBarrier
  12. C语言和设计模式(备忘录模式)
  13. 【GTK】如何得到控件的位置
  14. ThinkPHP 3.2 DEMO案例系列【phpmailer批量发送邮件】
  15. [图示]抢逼围:项目开发3字经
  16. Azure KUDU工具
  17. Yahoo! Screwdriver:可扩展的持续集成工具
  18. 全球顶尖!StarVR推出搭载集成眼动追踪的VR设备
  19. Live 2D所有模型展示图
  20. php百度蜘蛛劫持,技术教程:php伪造ip访问一个网站,可以伪造百度蜘蛛ip

热门文章

  1. ATextAppearance.AppCompat.Small not found
  2. android stadio 打开别人的工程 一直在编译中
  3. console js刷新页面_Console.js使用说明
  4. wsl2 图形界面_WSL2配置xrdp一键启动至桌面环境
  5. IOS开发笔记1-写一个hello world!程序
  6. ios开发学习笔记--调用相册或相机(UIImagePickerController)
  7. Flutter开发之《新锐专家之路:混合开发篇》笔记(55)
  8. Flutter开发之布局-1-Column(15)
  9. java线程callback,Java线程之异步回调(Callback)
  10. [No000018C]Vim清除上次的搜索高亮结果-Vim使用技巧(1)