首页
学习
活动
专区
圈层
工具
发布

Git使用经验总结6-删除远端历史记录

删除远端的历史记录但是不影响最新的仓库内容是笔者一直想实现的功能,有两个很不错的用处: 有的历史提交不慎包含了比较敏感的信息,提交的时候没注意,过了一段时间才发现。...不过要说明的是Git删除历史记录跟我们想象中的不太一样,需要使用的是rebase(变基)功能。...例如先检查一下所有的历史提交: git rev-list --count HEAD 如果得到的数值是500,那么将n设置成499就可以看到所有的历史记录。...如果你删除的历史记录足够远足够多,接下来你就会看到比较揪心的一幕,你的Git代码仓库会回溯到最远的历史状态,然后逐步开始自动提交,这个过程很可能会出现一些问题。...笔者也不太理解为什么删除历史记录还要解决与当前仓库快照冲突的问题,猜测可能因为笔者的历史提交记录包含了很多合并的提交。

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

    如何删除Git仓库中的敏感文件及其历史记录

    本文主要介绍如何使用 git filter-branch 命令删除 Git 仓库中的敏感文件及其历史记录。...有时候,因为疏忽或私有仓库转公开仓库,我们可能需要删除某个特定的敏感文件及其历史记录。 1....2.3 运行git filter-branch 进入仓库目录,使用 git filter-branch 命令删除敏感文件及其历史记录。...git push --force 完成以上步骤后,敏感文件及其历史记录将从Git仓库中删除。 请注意,这种方法可能导致其他协作者的仓库出现问题。建议通知其他协作者在合并更改之前重新克隆仓库。...结论 本文介绍了如何使用 git filter-branch 命令手动删除Git仓库中的敏感文件及其历史记录。虽然这种方法需要一些手动操作,但它不需要安装任何第三方工具。

    1.9K40

    从 git 的历史记录中彻底删除文件或文件夹

    如果你对外开源的代码中出现了敏感信息(例如你将私钥上传到了仓库中),你可能需要考虑将这个文件从 git 的历史记录中完全删除掉。 本文介绍如何从 git 的历史记录中彻底删除文件或文件夹。...---- 第一步:修改本地历史记录 彻底删除文件: 1 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch...walterlv.xml' --prune-empty --tag-name-filter cat -- --all 其中 walterlv.xml 是本来不应该上传的私钥文件,于是使用此命令彻底删除...彻底删除文件夹: 1 git filter-branch --force --index-filter 'git rm --cached -r --ignore-unmatch WalterlvDemoFolder...第二步:强制推送到远端仓库 刚刚我们的操作仅仅发生在本地仓库,敏感信息需要删除的仓库通常都在远端,于是我们一定要将修改推送到远端仓库。

    4.4K20

    彻底删除Git仓库中的某个文件或文件夹(包括历史记录)

    想要彻底删除 Git 仓库中的某个文件或文件夹(包括历史记录)时,可以按照以下步骤操作: 确定要删除的文件名或文件夹名: 如果要删除文件,使用以下命令: git filter-branch --force...--tag-name-filter cat -- --all 如果要删除某个文件夹下所有以“2018”开头的 mp4 文件,可以使用类似的命令: git filter-branch --force...-- --all 强制推送: git push -u origin master -f 删除回收: rm -rf .git/refs/original/ git reflog expire --expire...=now --all git gc --prune=now git gc --aggressive --prune=now 这些步骤经过测试,可以成功地删除文件或文件夹及其历史记录。...未经允许不得转载:前端资源网 - w3h5 » 彻底删除Git仓库中的某个文件或文件夹(包括历史记录)

    4.3K10

    Git删除文件

    在Git中,删除文件也属于修改操作,因此,要想删除起作用,那么之后也要git commit。在git中删除一个文件使用git rm命令。 在下图中,首先创建一个新文件,然后添加到仓库去。 ?...现在,我们来删除这个文件,从代码仓库中。使用如下命令: git rm test 执行该命令成功以后,输出如下: ?...需要注意的是,该命令也会把当前工作区下的文件直接删除,而不是只删除仓库中的文件。 ? 现在,提交这次修改到仓库。 ? 那么test将会在当前版本被删除,之前的版本依旧有test文件存在。不信?...git rm可以删除一个文件,你不要需要怕,只要你在删除之前,提交这个文件到过代码仓库,那么删除之前的那个版本依旧会保存该文件。所以大胆点干活,别怕。

    2.4K20

    使用git删除文件

    完全是被推着一步步在学git操作! 删除单个文件 如果只是删除本地的一个文件,通常是物理删除,然后git删除,再提交即可。...rm test.txt git status git rm test.txt git commit -m "remove test.txt" git push 还原那些误删的文件 另一种情况是删错了...,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本: $ git checkout -- test.txt git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除...批量删除多个文件 在项目根目录使用命令git add -A然后使用命令git commit -m "del" 再然后要使用 git push推送到远程服务器 建议每一次add之后再次使用git status...命令来查看是否已经stage了 如果你要上传删除(全部上传) git add --all

    2.1K20

    Git使用经验总结8-Git仓库历史记录清除

    引言 因为一些原因,Git 历史提交记录中会包含一些敏感信息,比如名字、邮箱、代码等等,因此就想将这些历史记录删掉。...删除特定的历史提交记录还是很困难的,笔者这里的做法是干脆彻底清除 Git 历史记录,只保留当前工作目录的最新快照,重新开始一个干净的提交历史。...方案 在进行操作之前先备份好仓库,然后进入项目目录: cd /path/to/your/project 删除现有的 .git 目录,这会清除所有 Git 历史: rm -rf .git 重新初始化 Git...其实实现本文的功能的一个更加简单的方法是在托管仓库网站(例如 GitHub )上删除原仓库,然后重新创建一个同名仓库。不过笔者不太确定是不是真的能行,因为仓库是有人在使用的,要尽量避免地址失效。...程序员应该都写过或者理解一个bug:删除对象后新建个同名的对象有时候会不成功。

    91420
    领券