git清除历史纪录

这篇具有很好参考价值的文章主要介绍了git清除历史纪录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git 是一种常用的版本控制工具,被广泛用于项目开发中。在项目开发的过程中,我们通常会使用各种 git 命令来进行版本控制和管理,其中包括提交代码,合并分支等操作。然而,在某些情况下,我们可能需要清除 Git 历史纪录,比如删除敏感信息或清除不必要的提交记录。下面我们将讨论如何清除 Git 的历史纪录。

一、备份

在执行 Git 历史纪录清除操作之前,我们需要进行备份,以防止操作出现错误或意外情况。将当前代码库备份到一个安全的地方是很重要的,以便我们可以在需要时还原我们的代码库。我们可以使用 Git 的打包命令将项目备份到一个压缩文件中,例如:

git archive --format zip --output backup.zip HEAD

这个命令会将当前代码库打包成一个 ZIP 文件,并将其保存到 backup.zip 中。

二、清除历史纪录(方法一)

使用命令清除单个文件的历史纪录

删除单个文件的历史纪录是一项相对简单的操作,我们可以使用以下命令来实现:

$ git filter-branch --index-filter \
'git rm --cached \
--ignore-unmatch path/to/file' \
--prune-empty -- --all

这个命令会将目标文件从历史纪录中彻底删除。其中,path/to/file 表示要清除的文件路径。

使用命令清除 commit 的历史纪录

有时候,我们需要删除某个 commit 及其之后的历史纪录。为此,我们可以使用 Git 的 rebase 命令来实现。具体来说,我们需要执行以下步骤:

1)- 使用以下命令展示项目中所有的 commit
$ git log \
--pretty=format:'%h %ad | %s%d [%an]' \
--graph --date=short

这个命令会显示项目中所有的 commit 记录。

2)决定要清除的 commit 的 SHA 值

我们需要查找要删除 commit 的 SHA 值,可以从下面的 commit 日志中获取:

commit 55d4d98de4caf2ac1a8f783624c58e533500f3d7

Author: John Doe <john@doe.com>

Date:   Fri Apr 30 16:01:07 2021 -0700

 

    Added new feature

上述示例中的 commit SHA 值是 55d4d98de4caf2ac1a8f783624c58e533500f3d7.

3) 使用以下命令将要清除的 commit 弹出
$ git rebase -i <commit-hash>^

比如,我们要删除 SHA 值为 55d4d98de4caf2ac1a8f783624c58e533500f3d7 的 commit 及其之后的历史纪录,可以执行以下命令:

$ git rebase -i 55d4d98de4caf2ac1a8f783624c58e533500f3d7^
4)编辑交互窗口以将目标 commit 弹出

在交互模式中,我们需要将需要删除的目标 commit 标记为 “drop”,然后将文件保存退出即可。示例如下所示:

pick 44a0c2c this is an invalid commit, which should be removed

drop 55d4d98 Added new feature

在上例中,55d4d98 历史纪录将被删除,而 44a0c2c 历史纪录将成为最新的 commit。

5)使用以下命令清除旧的历史纪录
$ git filter-branch \
--force --prune-empty \
--index-filter 'git rm -rf --cached \
--ignore-unmatch ./' \
--tag-name-filter cat -- --all

这个命令可以清除掉被标记为 “drop” 的 commit 及其之后的 commit。

6)推送到远程仓库

最后,我们需要强制推送到远程仓库,以更新远程仓库中的历史纪录,保证历史记录的正确性:

$ git push origin --force --all

请注意,在执行以上命令时应谨慎操作,并确保已备份代码库。因为一旦删除,就无法恢复。

三、清除历史纪录(方法二use)

使用 git checkout --orphan newBranch 清理git历史

操作步骤:

1) 创建新分支

git checkout --orphan newBranch

2) 添加所有文件(除了.gitignore中声明排除的)

git add -A

3) 提交跟踪过的文件(Commit the changes)

git commit -am “init commit”

4) 删除master分支

git branch -D master

5) 重命名当前分支为master

git branch -m master

6) 重新指定远端

git remote set-url origin http://xxx

7) 强制提交到远程master分支

git push -f origin master

通过以上几步就可以简单地把一个Git仓库的历史提交记录清除掉了文章来源地址https://www.toymoban.com/news/detail-727076.html

到了这里,关于git清除历史纪录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 清除所有本地修改

    reset 返回到某个节点,不保留修改(删除的是已跟踪的文件) clean 删除的是未跟踪的文件 谢谢

    2024年02月10日
    浏览(62)
  • git 清除账号密码缓存

    配置用户名和邮箱: git config --global user.name “username” git config --global user.email “useremail@qq.com” 清除配置中纪录的用户名和密码,下次提交代码时会让重新输入账号密码: git config --system --unset credential.helper 查看git配置信息 git config --list 执行命令之后,再次pull或push时会缓存

    2024年02月11日
    浏览(48)
  • 清除idea原git账户

    修改.gitconfig文件的name 和email,这个操作是可以调整idea中提交git操作时的git账号

    2024年02月16日
    浏览(25)
  • git如何清除已提交的内容?

    Git 提供了多种方式来清除已提交的内容,但这通常需要对 Git 有一定的理解,并且清除已提交的内容可能会对你的仓库和其他协作者产生影响。所以在清除已提交的内容之前,请一定要谨慎。 使用 git reset 命令。这个命令会将 HEAD 指针移动到指定的提交。例如,如果你想撤销

    2024年02月12日
    浏览(37)
  • 去掉原仓库git地址和清除原项目的git版本信息的方法

    1)命令查看关联到的git仓库地址 2)将之前的关联的git地址删除 3)然后我们再关联到新的远程库的地址 4)然后push 5)接着就可以提交代码了 注意:这个是直接删除之前的所有提交的git操作 以上就是git地址和清除原项目的git版本信息方法的介绍,希望对你有所帮助!

    2024年02月13日
    浏览(42)
  • git一键清除不需要的本地分支

    在日常开发中,肯定会遇到一个项目n个分支的情况,尤其是做sass平台的,各种专版层出不穷,如下图 更新迭代多了,许多不用的分支都删掉了,但是我们的本地分支还在,有些人用delete一个一个删除,有人把项目删掉重新clone 今天介绍一个方法,可以一键删除本地所有的分

    2024年02月04日
    浏览(43)
  • 清除git本地缓存和gitigore模板

    首先,.gitignore 只能忽略那些没有被追踪(track)的文件,且git存在本地缓存。 如果需要过滤文件之前已纳入了版本管理,那么除了修改ignore文件,还要清除本地缓存。

    2024年02月11日
    浏览(54)
  • git 记住账号密码和清除账号密码

    git 默认不记住账号密码,每次 clone 都要输入账号密码; 我们执行下面的命令 git config --global credential.helper store 这个命令其实是在主目录的gitconfig目录下添加了以下内容(~/.gitconfig) 输入一次密码之后,git就会自动帮你记住用户名和密码。 我们执行下面的命令: git credenti

    2024年02月17日
    浏览(45)
  • [GIT] GIT拆分仓库--不丢git提交历史记录

    如果你的代码仓库里有多个目录,你想把其中一个目录拆分出去变成一个独立的代码仓库。重要的一点是拆分的过程中要保留git提交历史记录。 进入根目录后,快速运行 ls 终端命令以确保列出所有子目录。 利用命令 git log 或 git log --onelist |wc  查看你的提交的信息和提交了多

    2024年02月09日
    浏览(81)
  • Git | 如何git clone 历史版本

    首先git clone 最新版本 再通过git checkout id号 可以退回历史版本 可以在提交里面,找到需要版本的id号

    2024年02月02日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包