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

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

BFG Repo-Cleaner(快速清除Git提交历史中的特定文件) 有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的),而且上传的文件又特别大的时候...的另一种选择 BFG是git-filter-branch之外的一种更简单、更快的方法,可以清除Git存储库历史中的不良数据: 删除 大文件 删除 密码、凭证 和其他 私人数据 git-filter-branch...这意味着您的普通文件将不可见,但它是存储库Git数据库的完整副本,此时您应该备份它,以确保不会丢失任何东西。...无论它们在您的存储库中的任何地方: $ bfg --replace-text passwords.txt my-repo.git 删除Git中所有名为'.git'的文件夹或文件—保留的文件名。...如果某个坏的文件(比如10MB的文件,当您指定--strip-blobs-bigger-than 5M)在受保护的提交中,那么它不会被删除—它将保存在您的存储库中,即使BFG从以前的提交中删除了它。

3K40

git 提交文件中的部分修改

概述 在 Git 提交一个文件的时候,有时候会在同一个文件中,包含两个不同功能的修改,或者一个功能完成了,而别的部分还没有完善不应该进入代码库,这时候如果使用git add file-name的话,会将这个文件中的所有更新都提交...针对这种场景,git 提供了更细粒度的提交命令git add -p,可以分部分提交一个文件中的更新代码块,实测能满足常见的需求。这里简要记录一下如何使用这个命令。 2....实现命令 2.1 原理解释 git 中用”hunk”来表示一个文件中邻近区域中的代码修改块,比如用git diff 查看修改时,两个@@符号分割的一个区域就是一个hunk,其中行首是-,颜色为红色的为删去的行...图片 需要注意的是,git有一套默认的将文件中所有修改分成不同hunk的机制,但我们也可以将默认机制分的太大的hunk分割为多个小的hunk,这样能更精确地控制提交的粒度。...部分提交文件修改的原理简单来说是将所有的修改分成不同的hunk,通过对每个hunk来进行是否提交的判断,从而完成我们的需求。具体命令下面详细讲述。

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

    Git清理commit中历史提交的大文件

    文章时间:2019年11月10日 14:02:59 解决问题:清理Git中比较大的文件,主要针对历史记录进行清理 ps:因为Git可以恢复版本,所有历史提交过的较大的文件,也会被保存下来,所以我们需要...这里方法有两种,下面方法主要介绍了其中一种 查看目录下的文件的大小 git count-objects -v # 查看 git 相关文件占用的空间 du -sh .git # 查看 .git 文件夹占用磁盘空间...du -d 1 -h # 列出所有文件的大小 du是linux 的基础命令,很多用法,详情自己去查找其他文档。...因为git的历史文件都是存在一个文件里的,我们使用下面命令可以找出排名前五的文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3...记一次删除Git记录中的大文件的过程:https://www.hollischuang.com/archives/1708 方法二 工具化(自动机枪) 工具名称:BFG 工具地址:https://rtyley.github.io

    5.8K10

    win10环境git bash使用添加.gitignore将文件提交到本地git缓存提交远程多人协作中打标签标签提交

    添加.gitignore vi .gitignore 然后按下键盘的“i”键,输入 按下“esc”键,再输入“:wq”保存退出,此时“test”工程根目录多了一个“.gitignore”文件 将文件提交到本地...git缓存 git add . git commit -m "initial" 提交远程 $ git push --set-upstream origin mmall_v1.0 Counting objects...多人协作中 $ git merge origin master 打标签 $ git tag tag-dev-initial 标签提交 $ git push origin tag-dev-initial...git init git commit -am "注释" git checkout branch Shusheng Shi@PC-of-sss MINGW64 ~/mmall/doc/mmall-fe...~/mmall/doc/mmall-fe (mmall_v1.0) $ git branch master * mmall_v1.0 git merge $ git merge origin master

    1.1K70

    获取到本地存储的数据:查看plist文件是否被清除

    *path = [[NSBundle mainBundle] pathForResource:@"xiaoxi" ofType:@"plist"];获取到本地存储的数据。...写入数据到plist文件   //获取路径对象     NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory..., NSUserDomainMask, YES);     NSString *path = [pathArray objectAtIndex:0];     //获取文件的完整路径     NSString...路径,在桌面空白处点击一下,前往-按住option-资源库-Developer-CoreSimulator-Devices......就按照下面路径找到plist所在的位置      *     /Users...---%@",dataDictionary); 删除plist文件     //清除plist文件,可以根据我上面讲的方式进去本地查看plist文件是否被清除     NSFileManager *fileMger

    1K30

    Git中忽略文件提交、取消文件追踪的方式(多中方式)

    背景 使用Git进行版本管理多人协作开发,常会遇到我们本地可能存在一套自己的配置或者某些测试文件不需要提交到远端的情况。因此需要使用Git的相关命令进行文件排除或解除追踪。...下面介绍几种方式: 1.本地添加的文件,未纳入Git管理时 我们只需要在待排除的目录内新建.gitignore文件 然后编辑.gitignore文件,增加希望排除的文件内容即可 image.png....gitignore内容参考: /* 或者 * 代表目录下全部排除 .gitignore 排除自身 xxx.java 排除特定文件 2.本地文件已经纳入了...然后参照方式一进行操作即可 3.文件已经纳入了Git管理,想取消文件追踪,本地更改不提交(适用于文件比较分散或同种类型文件时) 取消追踪 # 关闭跟踪文件,修改不提交 git update-index...| awk '{print $2}' |xargs git update-index --no-assume-unchanged 未经允许不得转载:肥猫博客 » Git中忽略文件提交、取消文件追踪的方式

    2.8K20

    Git删除暂存区或版本库中的文件

    打开你的项目文件夹,除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区,工作区的文件需要添加到Git的暂存区(git add),随后再提交到Git的版本库(git commit)。...删除错误添加到暂存区的文件 有时你在工作区新建了文件TestFile,并且已经将它添加到了暂存区,git会告知,现有有一个文件未提交到版本库,如下图: ?...错误提交到了版本库,此时无论工作区、暂存区,还是版本库,这三者的内容都是一样的,所以在这种情况下,只是删除了工作区和暂存区的文件,下一次用该版本库回滚那个误添加的文件还会重新生成。...//仅仅只是撤销已提交的版本库,不会修改暂存区和工作区 git reset --soft 版本库ID //仅仅只是撤销已提交的版本库和暂存区,不会修改工作区 git reset --mixed 版本库ID...如果你是在提交了后,对工作区的代码做了修改,并且想保留这些修改,那么可以使用git reset --mixed 版本库ID,注意这个版本库ID应该不是你刚刚提交的版本库ID,而是刚刚提交版本库的上一个版本库

    3.9K30

    在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱)

    对于旧仓库,我将废弃,将来所有的精力都将在开源版本的仓库中;而对于开源版本的新仓库,由于此前没有人克隆过,所以也不会因为历史的修改产生问题。所以,我可以很放心地更改全部的 git 仓库历史。...---- 我打算将整个 Git 仓库历史中的名称和邮箱。 第一步:打开 Git Bash 进入本地的 Git 仓库目录,然后打开 Git Bash。...第二步:输入 Git 命令 接下来,我们需要输入一段多行命令。请先复制以下命令到你的临时编辑器中,然后修改这段多行命令中的几个变量的值。...walterlv,新邮箱也就是我在 GitHub 上公开使用的提交邮箱。...将以上修改后的命令粘贴到 Git Bash 中,然后按下回车键执行命令: 等待命令执行结束,你就能看到你的仓库中所有的分支(Branches)、所有的标签(Tags)中的旧作者信息全部被替换为了新作者信息了

    38920

    C#如何遍历某个文件夹中的所有子文件和子文件夹(循环递归遍历多层),得到所有的文件名,存储在数组列表中

    D:\\test"; List nameList = new List(); Director(path,nameList); 响应(调用)代码如上面,比如写在某个事件中。...首先是有一个已知的路径,现在要遍历该路径下的所有文件及文件夹,因此定义了一个列表,用于存放遍历到的文件名。...DirectoryInfo[] directs = d.GetDirectories();//文件夹 foreach (FileInfo f in files) {...list.Add(f.Name);//添加文件名到列表中 } //获取子文件夹内的文件列表,递归遍历 foreach (DirectoryInfo...dd in directs) { Director(dd.FullName, list); } } 这样就得到了一个列表,其中存储了所有的文件名,如果要对某一个文件进行操作

    14.4K40

    如何使用 Git:参考指南

    设置和初始化 使用以下命令检查您的 Git 版本,这也将确认安装了 Git: git --version Git 允许您配置一些将应用于本地计算机上所有存储库的设置。...从跟踪远程分支获取并合并任何提交: git pull 检查 显示当前活动分支的提交历史: git log 显示更改特定文件的提交。...显示有关特定存储的信息: git stash show stash@{0} 要将当前存储中的文件从存储中取出,同时仍保留存储,请使用 apply: git stash apply stash@{0}...如果您想从存储中取出文件,并且不再需要存储,请使用 pop: git stash pop stash@{0} 如果您不再需要保存在特定存储中的文件,您可以 drop存储: git stash drop...您可以使用以下命令重置为特定提交,并删除所有更改 : git reset --hard 1fc6665 要将最后一次已知的非冲突提交强制推送到原始存储库,您需要使用 --force: 警告 :master

    1.3K30

    开发者应该知道的 50 条最实用的 Git 命令

    git add fil* 如何在Git中检查存储库的状态: 该命令将显示当前存储库的状态,包括暂存、未暂存和未跟踪的文件。...中的更改: 这个命令显示提交的历史,包括所有的文件和它们的更改: git log -p 如何在Git中看到一个特定的提交: 这个命令显示一个特定的提交。...git commit -amend ! !注意! !用amend修复本地提交非常棒,你可以在修复后将其推到共享存储库中。但是您应该避免修改已经公开的提交。...git add remote https://repo_here 如何在Git中查看远程url: 使用这个命令可以查看本地存储库的所有远程存储库: git remote -v 如何在Git中获取远程repo...中获取更改: 如果其他团队成员正在处理您的存储库,您可以使用以下命令检索对远程存储库所做的最新更改: git pull 如何检查Git跟踪的远程分支: 这个命令显示了Git正在跟踪当前存储库的所有远程分支的名称

    1.8K10

    程序员的20大Git面试问题及答案

    还有一个中央云存储库,开发人员可以向其提交更改,并与其他团队成员进行共享,如图所示,所有协作者都在提交更改“远程存储库”。2.Git 工作流程本章节我们将为大家介绍 Git 的工作流程。...这是修复错误的最自然方式。对文件进行必要的修改后,将其提交到我将使用的远程存储库git commit -m "commit message"创建一个新的提交,撤消在错误提交中所做的所有更改。...git pull 命令从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。git fetch 也用于相同的目的,但它的工作方式略有不同。...当你执行 git fetch 时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在 git fetch 之后执行git merge。...要获取特定提交中已更改的列表文件,请使用以下命令:git diff-tree -r {hash}给定提交哈希,这将列出在该提交中更改或添加的所有文件。

    30510

    如何使用Git:参考指南

    当您在本指南的命令中看到highlighted text时,请记住,此文本应引用您自己的存储库中的提交和文件。...git add my_script.py 有了.你可以在当前目录中包括了.开头的文件添加的所有文件。 git add . 您可以从暂存中删除文件,同时用reset保留工作目录中的更改。...git merge upstream/master 将本地分支提交推送或传输到远程存储库分支。 git push origin master 从跟踪远程分支获取并合并任何提交。...git stash pop stash@{0} 如果您不再需要保存在特定存储中的文件,则可以drop存储。...git clean -f -d 如果您需要修改本地存储库以使其看起来像当前的上游主服务器(即冲突太多),则可以执行硬重置。 注意:执行此命令将使您的本地存储库看起来与上游完全相同。

    1.4K94

    Git 相关问题

    SVN 是集中版本控制工具 2.它属于第3代版本控制工具 2.它属于第2代版本控制工具 3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器端存储库中 4.即使离线也可以提交 4.只允许在线提交...这是修复错误的最自然方式。对文件进行必要的修改后,将其提交到我将使用的远程存储库 1git commit -m "commit message" 创建一个新的提交,撤消在错误提交中所做的所有更改。...git pull 命令从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。 git fetch 也用于相同的目的,但它的工作方式略有不同。...当你执行 git fetch 时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在 git fetch 之后执行git merge。...要获取特定提交中已更改的列表文件,请使用以下命令: git diff-tree -r {hash} 给定提交哈希,这将列出在该提交中更改或添加的所有文件。

    2.1K10
    领券