摘要
有时候我们经常会提交敏感信息到仓库里面,但是修改之后提交也能在提交记录里面找到文件的信息。有几种方法可以清除记录,这里记录一下对我最有用的操作。
完全清空操作
这种方法会完全删除光所有的提交记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| // 新建一个孤立分支 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
|
保留到指定的记录(替换)
1 2 3 4 5
| // 确保你在包含需要删除提交的分支上。如果不是,请切换到正确的分支。 git checkout <your_branch_name>
//运行以下命令启动交互式 rebase。这里的 <commit_sha> 是需要删除的提交的前一个提交的哈希值。 git rebase -i <commit_sha> //例如 git rebase -i abc1234
|
编辑 rebase 文件: 一个交互式 rebase 文件会在编辑器中打开。对于需要删除的提交,将单词 pick 改为 edit 或者简写为 e。
1 2 3 4 5
| pick abc1234 Your commit message
edit abc1234 Your commit message
|
1 2 3 4 5 6 7 8
| //在执行了 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
|