git 如何把某次 commit 抹掉?

2018-03-16 09:24:30 +08:00
 zjsxwc

有同事在一次本地 commit 里把极光推送的 secret 传上去了,然后他又 commit 一次把这个 commit 给覆盖掉,但通过gitk filename仍旧可以看到他的那次提交的 secret。

然而不幸的是,上周已经把他的分支合并到了线上分支。

我们应该如何把他带有 secret 的提交抹去?

8188 次点击
所在节点    程序员
41 条回复
blakejia
2018-03-16 09:27:01 +08:00
更换 secret 更实在
ycz0926
2018-03-16 09:28:36 +08:00
把代码删了,重新初始化仓库😊
pagxir
2018-03-16 09:29:38 +08:00
直接删库跑路。
leviathan0992
2018-03-16 09:30:28 +08:00
强制回滚
arclin16
2018-03-16 09:32:36 +08:00
reset 到提交 secret 之前的节点吧 然后重新 commit...
scnace
2018-03-16 09:33:15 +08:00
rebase -i ? 还有这种 key 不是应该做成 conf 的形式吗?
SergeGao
2018-03-16 09:33:37 +08:00
vegito2002
2018-03-16 09:33:54 +08:00
reset 不行吗? gitk 没用过不知道难道是有什么特殊的功能;
SEARCHINGFREE
2018-03-16 09:35:29 +08:00
#1 +1
secret 都暴露了吧
liuzelei
2018-03-16 09:42:09 +08:00
dahvlh
2018-03-16 09:42:09 +08:00
reset 然后 push -f 吧
timwei
2018-03-16 09:43:47 +08:00
#先记录暴露的 commit 的 hash、当前版本的 hash
git log

#回到旧版本
git checkout 旧版本 hash

#创建回滚用分支
git checkout -b 回滚用的分支

#套用回滚版本到当前版本中间的修改
git checkout 当前版本 hash .

#移除暴露的档案后 git push -f 到 repo, 记得把 repo 的 force 保护关掉
lllllllllllllll
2018-03-16 09:48:40 +08:00
backup current files.
git reset --hard <your commit hash>
git push origin master -f

use your backup overwrite current files
commit and push
timwei
2018-03-16 09:48:40 +08:00
虽然我也觉得直接换 secret 会好点
uolcano
2018-03-16 09:50:42 +08:00
@scnace rebase 后其实还是能通过 reflog 看到这次操作的,不过被回滚的内容就不知道能不能再恢复回来,我还没试过恢复
wwulfric
2018-03-16 09:51:29 +08:00
1. 作为分布式代码控制,你不能保证其他人电脑上没有备份
2. git rebase -i,然后在你要删除的 commit 那里把 pick 换成 drop,然后强推,至少服务器记录里可以删掉
3. 最好的方式是换 secret 吧
ZxBing0066
2018-03-16 10:01:42 +08:00
reset 后 push --force 然而已经上线了不排除已经泄露的可能,还是换 secret 实在
scnace
2018-03-16 10:05:11 +08:00
@uolcano drop 也能看到吗?没用 reflog 试过来着……
ex44559
2018-03-16 10:06:58 +08:00
git rebase
closedevice
2018-03-16 10:13:58 +08:00
@vegito2002 git 图形化客户端

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/438540

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX