例如:逆向 git.exe ,将二进制文件里面对应相关命令的部分篡改成“不执行,直接 return ”。
![]() | 1 amwyyyy 2018-10-24 20:44:37 +08:00 ![]() .gitconfig 里配个 alias |
2 arthasgxy 2018-10-24 20:45:50 +08:00 扣工资 |
![]() | 3 expy 2018-10-24 20:47:02 +08:00 逆向开源软件,你是多想不开…… |
![]() | 4 des 2018-10-24 20:53:00 +08:00 via Android ![]() 开分支保护,不允许直接推。 另外手贱无解 |
5 littleMaple OP @amwyyyy alias 的细粒度好像只能到 subcommand,不能细到 option |
7 littleMaple OP @expy 个人经验中每次试图自己编译开源项目都没有什么顺利成功的结果,但是如果用逆向的方向的话,改一下二进制文件的几个零一串就好了 |
![]() | 8 lance6716 2018-10-24 21:01:32 +08:00 via Android 这种常识… po 还是好好学习打牢基础吧 |
9 littleMaple OP @des 分支保护确实是个好办法,但是还是有时候忍不住强迫症想要把 commit 历史改漂亮点 _(:3 」∠)_ |
10 littleMaple OP @lance6716 不是不知道它们是危险命令,只是有时候贪图方便忍不住就直接用了 (_」∠) |
11 Kagari 2018-10-24 21:03:39 +08:00 找个队友,给他配一把枪 ![]() |
![]() | 12 nl101531 2018-10-24 21:04:34 +08:00 via Android 意识,输入之前先醒醒脑。 |
![]() | 13 des 2018-10-24 21:05:50 +08:00 via Android ![]() @littleMaple 好说,开个分支专门用来整理 commit 用,然后从这个分支合过去。 |
14 littleMaple OP @des 类似于 gitflow 那样嘛,确实是个好方法 |
15 azh7138m 2018-10-24 21:09:05 +08:00 via Android ![]() 整理 commit 的话用 rebase 也行 |
16 earther01 2018-10-24 21:30:31 +08:00 via iPhone ![]() git 仓库加脚本,禁止 push -f |
![]() | 17 ixiaohei 2018-10-24 21:36:34 +08:00 ![]() 宣导 git revert ?另外貌似 git 远程库有的可以禁止 git push -f |
![]() | 18 trait 2018-10-24 21:50:12 +08:00 via iPhone ![]() 多次使用也没什么吧 万事不决 reflog |
19 beny2mor 2018-10-24 21:50:32 +08:00 剁手剁手 |
![]() | 20 l1fan 2018-10-24 22:07:44 +08:00 ![]() git reflog 可以找回来,除非你手贱到手动 git gc 30 天之内应该没问题 |
![]() | 21 cchange 2018-10-24 22:13:00 +08:00 via iPhone 战略关注此帖 |
22 carlclone 2018-10-24 22:19:26 +08:00 多次手贱了你的脑子还不够阻止你执行吗? 居然还要想办法阻止 |
![]() | 23 xor 2018-10-24 22:23:19 +08:00 via iPhone ![]() |
![]() | 24 xor 2018-10-24 22:24:43 +08:00 via iPhone 然而手贱的解决方法是剁手 不然的话哪天自己的手把枪对准脑袋怎么办?毕竟管不了手的脑袋留着也没啥用对吧 |
![]() | 25 thedrwu 2018-10-24 22:27:45 +08:00 via Android reflog 里也没了? |
![]() | 26 ShadowStar 2018-10-24 22:36:25 +08:00 ![]() 远程仓库配置“ receive.denyNOnFastForwards= true ” |
27 scnace 2018-10-24 22:49:34 +08:00 via Android ![]() reflog 大法好! |
![]() | 28 ZxBing0066 2018-10-24 22:52:56 +08:00 reflog 了解下? |
![]() | 29 ZxBing0066 2018-10-24 22:54:52 +08:00 ![]() 多说一句 手误能直接 git reset --hard 和 git push -f 还不知道 reflog 的人建议不要给 master 权限 仓库 push 权限控制还是要控制住的 |
![]() | 30 ritaswc 2018-10-24 23:01:08 +08:00 git reset --hard 那是你傻逼 git push -f 那是你不懂 git,没学会用什么 git |
31 littleMaple OP @trait @l1fan @thedrwu @scnace @ZxBing0066 之前使用 git reset --hard 发生损失的情况就是因为 work directory 有 unstaged change 的情况下使用 hard reset 将会强行将 work directory 覆盖,按理来说 unstaged change 是不在 reflog 里面的吧 |
32 llillill 2018-10-24 23:27:42 +08:00 想请教下 git push -f 没有具体合理的使用场景吗 |
![]() | 33 swulling 2018-10-24 23:29:15 +08:00 via iPhone ![]() 第一次听到逆向开源软件的骚操作和改一个零一串的高论。 |
![]() | 34 hlwjia PRO 把分支保护好就可以避免 force push 了呀 @llillill 真正明白 git 流程的人就会找到合适用的场景,比如我有强迫症,我在自己的分支上就可以用,而且确保我的分支上的东西没被合并到哪里。 |
35 scnace 2018-10-24 23:33:12 +08:00 via Android @littleMaple reset --hard 真没试过 但是应该会有 |
![]() | 36 trait 2018-10-24 23:34:00 +08:00 ![]() @littleMaple 好吧 push 什么的都是小事。可有改动至少也要 stash 一下再另行操作,直接 reset 真实 看你这种情况应该是不知道当前目录的 git 状态,建议你在 bash 里加上显示目录 git 信息的语句,很多 shell 也自带这个功能 zsh fish 什么的 比如 我的 bash prompt: /home [git_branch !], 这里的 !表示对文件做了改动但未提交,* 表示没和 upstream 同步 这样你就不会硬核操作了 |
![]() | 37 trait 2018-10-24 23:36:06 +08:00 @llillill 有,比如 PR 和 upstream 出现冲突的时候(我很不喜欢用 merge ),rebase 到最新的 upstream/master,再 push -f |
38 littleMaple OP @swulling 确实是我想当然了,我本来以为只要在二进制文件里面找到那个节点然后添加一些表示 return 的东西就可以了,确实是很 naive 的想法 |
39 littleMaple OP |
40 littleMaple OP @trait 确实是很有用的一个方法,对我来说非常新颖的一个角度; |
42 ddbullfrog 2018-10-25 03:57:16 +08:00 git server 配置不允许 force push |
43 arthasgxy 2018-10-25 11:46:41 +08:00 真没有比损失金钱更能令人长记性的了。 还是学生也简单,每次输入一次,请客吃饭。 |
![]() | 44 YumeMichi 2018-10-25 14:02:21 +08:00 我司的项目都是禁止 push -f 的 不论你 commit msg 写得再难看 push 上去就没得改了 |