首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BFG Repo-Cleaner - 快速清除Git提交历史特定文件

最好删除所有旧克隆,因为它们会有肮脏历史,您不想冒险将其推回到您新清理repo。 例子 在所有这些示例,bfg是java -jar bfg.jar别名。...删除所有名为'id_rsa'或'id_dsa'文件: $ bfg --delete-files id_{dsa,rsa} my-repo.git 删除所有大于50兆字节blob: $ bfg --...当Mercurial等其他源代码控制系统迁移到Git时,这些常常会成为一个问题: $ bfg --delete-folders .git --delete-files .git --no-blob-protection...你的当前文件是神圣... BFG对待你就像一个改过自新酒鬼:你过去犯过一些错误,但现在你已经改过自新了。因此,BFG假定您最新提交是一个好提交,其中没有您希望历史记录删除文件。...如果某个坏文件(比如10MB文件,当您指定--strip-blobs-bigger-than 5M)在受保护提交,那么它不会被删除—它将保存在您存储库,即使BFG以前提交删除了它。

2.8K40

清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除文件一句命令搞定(比官方文档还详细使用说明)

将一整夜工作缩减到不到十分钟。 删除误上传文件 使用下面的命令,可以将仓库历史中大于 500M 文件删除掉。...1 > bfg --strip-blobs-bigger-than 500M 删除特定一个或多个文件 删除 walterlv.snk 文件: 1 > bfg --delete-files walterlv.snk...删除文件删除名字为 walterlv 文件夹: 1 > bfg --delete-folders walterlv 此命令可以与上面的 --delete-files 放在一起执行: 1 > bfg...下面这个例子示例将 git 仓库中所有文件 密码:123456 字符串替换成 ***REMOVED***: 1 密码:123456 更复杂一点,下面的例子示例将 git 仓库中所有文件 密码...NUM 大到小移除 NUM 数量文件 -bi, --strip-blobs-with-ids

47440
您找到你想要的搜索结果了吗?
是的
没有找到

Git目录为什么这么大

于是在Git删除一个文件时,Git只是记录了该删除操作,该记录作为一个Patch存储在 .git 。...我们在提交前移除了 test.py 文件, 这个文件便Git所有记录完全消失了 3、解析Object存储方式 为了一步步熟悉Object存储方式,这里在本地创建一个空git仓库,且objects...create mode 100644 src/demo1.txt 输出可以看到,上面的命令创建了一个commit对象,该commit包含两个文件 查看.git/objects目录,可以看到该目录下增加了...-jar bfg.jar --delete-files id_{dsa,rsa} my-repo.git # 删除所有大于50M文件 $ java -jar bfg.jar --strip-blobs-bigger-than...50M my-repo.git # 删除文件夹下所有的文件 $ java -jar bfg.jar --delete-folders doc my-repo.git 7、小结 本文分析了git底层版本控制存储实现

1.2K10

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了

图片这目录好大那么.git目录是存放什么为什么会这么大呢?在Git系统,.git目录存储了整个代码仓库元数据信息(包括提交历史记录、分支、标签等)和文件对象。...上边三种类型对象组成了Git基本数据单元,通过这些对象组合和链接,才构建出完整提交历史,并跟踪代码库每个文件变化历史。...# 查找出大于20M需要清理文件$ java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 20M Springboot-Notebook.git看到过滤出了很多大文件...图片4、删除文件使用--delete-files命令逐一将大文件删除,如果提示分支是被保护可以加上--no-blob-protection命令执行。...# 查找出大于20M需要清理文件$ java -jar bfg.jar --delete-files Cyrillic.traineddata Springboot-Notebook.git 5、

78330

Git中文命令大全

# 配置文件删除与密钥匹配行 --unset-all # 配置文件删除所有与密钥匹配行 -l, --list...,修改和删除索引条目以匹配工作树 --no-all, --ignore-removal # 通过添加索引未知文件和工作树修改文件来更新索引, 但忽略已从工作树删除文件当没有使用...此选项可用于将命令行选项文件列表分开,(当文件名可能被误认为是命令行选项时很有用) --cached # 使用此选项可以取消仅从索引删除路径情况。...[--tool=] [-y | --[no-]prompt] […​] 选项: -t , --tool= # 使用指定合并解析程序...# 显示简化历史记录所有提交 --simplify-merges # 附加选项可--full-history结果历史记录删除一些不必要合并

12500

pycharm快捷键、tips、常用设置及版本控制 制

要将已添加到git版本管理文件删除(不是删除文件,只是不添加到repository暂存区stage): changes窗口 > default > 1....删除本地文件后:若添加到repository文件已push到远程,删除本地文件后,changes窗口会出现刚刚删除改动,要push到远程才能将远程文件删除了。...删除本地文件后:可以通过changes窗口中ctrl+alt+z撤销修改(删除) 将文件提交到repository(相当于git中提交到repositorymaster) Now press...将修改过files push另一种方法: 在当前文件 > 右键 > Git > Repository > push > 选择push位置/分支 Files under .idea directory...of files ignored by version control by default:(相当于git.gitignore文件作用) If you want more files to be

1.7K80

git commit 如何写 ? git 分支如何使用? bean copy 最佳实践?

这一点值得牢记:Git 会把工作目录内容恢复为检出某分支时它所指向那个提交对象快照。它会自动添加、删除和修改文件以确保目录内容和你当时提交时完全一样。 接下来,你得进行紧急修补。...使用 git branch -d 选项执行删除操作: $ git branch -d hotfix Deleted branch hotfix (was 3a0874c)....因为这次你开发历史是更早地方开始分叉。由于当前 master 分支所指向提交对象(C4)并不是 iss53 分支直接祖先,Git 不得不进行一些额外处理。...就此例而言,Git 会用两个分支末端(C4 和 C5)以及它们共同祖先(C2)进行一次简单三方合并计算。图 3-16 用红框标出了 Git 用于合并三个提交对象: ?...我们将在第七章讨论怎样改变环境默认值。 退出合并工具以后,Git 会询问你合并是否成功。如果回答是,它会为你把相关文件暂存起来,以表明状态为已解决。

1.2K20

《Pro Git》 读书笔记1

/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository#Removing-Files文件暂存区移除,并且连带硬盘工作目录删除...如果仅仅用rm把文件硬盘删除,则在git中会出现未暂存记录,这时需要再执行git rm xxx 记录这次删除文件操作,下一次提交时,该文件就不再纳入版本管理了。...如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 首字母)。...这是一种安全特性,用于防止误删还没有添加到快照数据,这样数据不能被 Git 恢复。 只想把文件暂存区删除(意味着不再让git跟踪),但不删除保留在硬盘。...git rm --cached deleteme.rb // 保存working tree文件,只stage移除,并不再追踪 level 13 14 git mv 1.

52610

实战Git常用操作(IDEA界面+命令):初始化(init)、忽略文件(.gitignore)、提交(commit)、查看提交记录(log)、创建+切换分支(branch)

Git重要性: 在实际工作Git使用频率很高,是必须掌握技能,一个好Git习惯会让团队协作更舒服,也会让你Leader更省心。...Git面试: 如果在面试两个人水平差不多,但另一个人Git使用更胜一筹,那我毫不犹豫会选择Git更溜这个人,因为,确实看到太多八股文背很溜,Git操作让你操碎了心同学!...到顶部菜单点击View-》Tool Windows-》Git 和 View-》Tool Windows-》Commit打开,如下图: 没有Git、Commit菜单?.../en/download/help/error_hotspot.xml hs_err_pid* .idea/ target/ 这时,你再到IDEA里查看Commit选项卡,这时文件就少了很多,我这里...包括新添加,修改删除都会添加到暂存区 add执行完以后,再执行commit命令进行提交,-m 后带提交说明 git commit -m "feature: 添加readme文件" ----

4.1K21

8.1 自定义 Git - 配置 Git

接下来 Git 会查找每个用户 ~/.gitconfig 文件(或者 ~/.config/git/config 文件)。 你可以传递 --global 选项Git 读写该文件。...最后 Git 会查找你正在操作版本库所对应 Git 目录下配置文件(.git/config)。 这个文件值只对该版本库有效。...Git 着色 Git 充分支持对终端内容着色,对你凭肉眼简单、快速分析命令输出有很大帮助。 你可以设置许多相关选项来满足自己偏好。...,而没有设置 extMerge 和 extDiff 文件Git 会用 KDiff3 做合并,让内置diff 来做比较。...要删除远程分支,必须服务器手动删除引用文件。 通过用户访问控制列表(ACL)也能够在用户级粒度上实现同样功能,你将在 使用强制策略一个例子 一节学到具体做法。

91130

Git使用--如何安装和使用 github,让小白不在那么白 (一)(超详解) 简介

实际项目开发,我们经常会用一些版本控制器来托管自己代码,今天就来总结下Git相关用法,废话不多说,直接开写。...当执行 "git rm --cached " 命令时,会直接暂存区删除文件,工作区则不做出改变。 当执行 "git checkout ."...或者 "git checkout -- " 命令时,会用暂存区全部或指定文件替换工作区文件。这个操作很危险,会清除工作区未添加到暂存区改动。...或者 "git checkout HEAD " 命令时,会用 HEAD 指向 master 分支全部或者部分文件替换暂存区和以及工作区文件。...5、删除仓库文件   方法一:在编辑器中直接把要删除文件删除掉   方法二:使用git删除:$ git rm '文件名',然后提交操作 ?

2.5K52

2.2 Git 基础 - 记录每次更新到仓库

稍后我们会详细介绍 git diff,你可能通常会用它来回答这两个问题:当前做哪些更新还没有暂存? 有哪些更新已经暂存起来准备好了下次提交?...可以用 git rm 命令完成此项工作,并连带工作目录删除指定文件,这样以后就不会出现在未跟踪文件清单中了。...如果只是简单地工作目录手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是 未暂存清单)看到: $ rm PROJECTS.md...如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 首字母)。 这是一种安全特性,用于防止误删还没有添加到快照数据,这样数据不能被 Git 恢复。...另外一种情况是,我们想把文件 Git 仓库删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。

61810

Git教程

17)、创建文件 小于号:命令默认键盘获得输入,改成文件,或者其它打开文件以及设备输入 >> 是追加内容 > 是覆盖原有内容 ? 18、显示文件内容 cat ?...当执行如下命令时,会直接暂存区删除文件,工作区则不做出改变 #直接暂存区删除文件,工作区则不做出改变 git rm --cached 执行命令 ?...#只stage删除,保留物理文件 git rm --cached readme.txt #不但从stage删除,同时删除物理文件 git rm readme.txt #把a.txt改名为b.txt...或者 “git checkout — ” 命令时,会用暂存区全部或指定文件替换工作区文件。这个操作很危险,会清除工作区未添加到暂存区改动。...或者 “git checkout HEAD ” 命令时,会用 HEAD 指向 master 分支全部或者部分文件替换暂存区和以及工作区文件

1.3K20

Git 教程:解密 .gitignore 文件、合并分支、解决冲突、及 Git 帮助

Git 帮助如果你忘记了命令或命令选项,你可以使用 Git 帮助。...在命令行,有几种不同使用帮助命令方式:git command -help - 查看特定命令所有可用选项git help --all - 查看所有可能命令让我们看看不同命令。...Git -help 查看特定命令选项任何时候,如果你需要帮助来记住特定命令选项,你可以使用 git command -help:这将显示特定命令所有可用选项:usage: git commit [...这意味着 Git 不会跟踪或包含在版本控制,但它们仍然存在于你工作目录。...通过编辑.gitignore文件,你可以自定义哪些文件文件夹应该被 Git 忽略,以便它们不会包含在版本控制。这对于避免将不必要或敏感文件提交到版本控制中非常有用。

18210

跟着小程一起聊聊GIT那点事

若使用 git config 时用 --global 选项,读写就是这个文件。...项目中取出某个版本所有文件和目录,用以开始后续工作叫做工作目录。这些文件实际上都是 git 目录压缩对象数据库中提取出来,接下来就可以在工作目录对这些文件进行编辑。...若要看已经暂存起来文件和上次提交时快照之间差异,可以用 git diff --cached 命令 移除文件 要从 Git 移除某个文件,就必须要从已跟踪文件清单移除(确切地说,是暂存区域移除...git rm 另外一种情况是,我们想把文件 Git 仓库删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录。...如果你修改了两个待合并分支里同一个文件同一部分,Git 就无法干净地把两者合到一起,这种问题只能由人来解决。

48920

GIT 常用快捷命令

–list 查看文件列表 git ls-files 比较工作区和暂存区 git diff 比较暂存区和版本库 git diff –cached 比较工作区和版本库 git diff HEAD 暂存区移除文件...也可以运行 git mergetool -t vimdiff 使用 -t 参数临时指定一个想要使用 merge tool。 不想跟踪文件已经被提交了,如何不再跟踪而保留本地文件?...update 当 submodule remote 有更新时候,需要 git submodule update --remote 删除 submodule 在 .gitmodules 删除对应...tag [tagname] 清除未跟踪文件 git clean 可选项选项 含义 -q, –quiet 不显示删除文件名称 -n, –dry-run 试运行 -f, –force 强制删除 -i,...–interactive 交互式删除 -d 删除文件夹 -e, –exclude 忽略符合 文件 -x 清除包括 .gitignore 里忽略文件 -X 只清除 .gitignore 里忽略文件

1.3K10

Git最全系列教程(三)

使用 git branch -d 选项执行删除操作: $ git branch -d hotfix Deleted branch hotfix (3a0874c)....就此例而言,Git 会用两个分支末端(C4 和 C5)以及它们共同祖先(C2)进行一次简单三方合并计算。图 3-16 用红框标出了 Git 用于合并三个提交对象: ? 图 3-16....不过,如果你确实想要删除该分支上改动,可以用大写删除选项 -D 强制执行,就像上面提示信息给出那样。...然而在 Git ,一天之内建立、使用、合并再删除多个分支是常见事。 我们在上节例子里已经见过这种用法了。...这两个分支对应代码应该是两套文件,虽然这么说不是很严格,但应理解为在 C3 时间点之后,对另外文件所做 C8,C9 修改,放到主干重演。)

95930

git创建分支,合并分支,常用命令

使用 git branch  -d 选项执行删除操作: $ git branch -d hotfix Deleted branch hotfix (3a0874c)....就此例而言,Git 会用两个分支末端(C4 和 C5)以及它们共同祖先(C2)进行一次简单三方合并计算。图 3-16 用红框标出了 Git 用于合并三个提交对象: ? 图 3-16....比如你可以通过把这段内容替换为下面这样来解决: please contact us at email.support@github.com 这个解决方案各采纳了两个分支一部分内容,而且我还删除了...不过,如果你确实想要删除该分支上改动,可以用大写删除选项 -D 强制执行,就像上面提示信息给出那样。...这两个分支对应代码应该是两套文件,虽然这么说不是很严格,但应理解为在 C3 时间点之后,对另外文件所做 C8,C9 修改,放到主干重演。)

14.9K51

levelDB 版本控制

大家好,又见面了,我是你们朋友全栈君。 levelDB为什么需要版本控制 在一个使用levelDB服务,必然存在多个线程同时访问数据库情况。...VersionEdit类是保存变更类。其中有两个特别重要类成员deleted_files_, new_files_。...new_files_ 记录新增sstable磁盘文件,采用pair结构记录,第一个参数记录level,即放在第几层,第二个记录文件元信息; deleted_files_ 记录删除 第几层那个...,就是Version里哪些SSTable被删除 DeletedFileSet deleted_files_; // 有哪些文件被增加,pair第一个参数是Level,第二个参数是文件元信息...sstable个数小于阈值,则插入到level2流程图中可以看出来,新增sstable最多就插入到level2; 提问1:拿level1来举例子,为什么不光要判断是否与level1有交集,

66020
领券