侧边栏壁纸
博主头像
MicroMatrix博主等级

曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。夫唯不争,故天下莫能与之争。古之所谓“曲则全”者,岂虚言哉!诚全而归之。

  • 累计撰写 80 篇文章
  • 累计创建 21 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Git 清空提交记录

蜗牛
2023-12-11 / 0 评论 / 0 点赞 / 17 阅读 / 3134 字 / 正在检测是否收录...

摘要

有时候我们经常会提交敏感信息到仓库里面,但是修改之后提交也能在提交记录里面找到文件的信息。有几种方法可以清除记录,这里记录一下对我最有用的操作。

完全清空操作

这种方法会完全删除光所有的提交记录

// 新建一个孤立分支
git checkout --orphan latest

// 然后保存操作
git add.

// 提交到缓存
git commit -m "xxxx:xxxx"

// 删除master或者指定的分支
git branch -D master

// 重命名latest分支为master
git branch -m master

// 提交到master或者指定分支(或者强制提交)
git push -f origin master

保留到指定的记录(替换)

// 确保你在包含需要删除提交的分支上。如果不是,请切换到正确的分支。
git checkout <your_branch_name>

//运行以下命令启动交互式 rebase。这里的 <commit_sha> 是需要删除的提交的前一个提交的哈希值。
git rebase -i <commit_sha> //例如 git rebase -i abc1234

编辑 rebase 文件: 一个交互式 rebase 文件会在编辑器中打开。对于需要删除的提交,将单词 pick 改为 edit 或者简写为 e。

// 源代码记录
pick abc1234 Your commit message

// 改成
edit abc1234 Your commit message
//在执行了 git rebase -i 命令后,Git 会停在你指定的提交(这里是 <commit_sha> 所对应的提交)。在这个点上,你可以进行修改。删除文件或进行其他修改,然后将更改添加到暂存区
git add .

git rebase --continue
//当 rebase 完成时,可能会有冲突需要解决。根据 Git 的提示,可能需要运行 git rebase --continue 或 git rebase --skip。

//因为你修改了提交历史,所以需要强制推送到远程仓库:
git push origin <your_branch_name> --force
0

评论区