最近在用业余时间写一个CodeReview的本地版工具,因为不是放在Git服务器上的,也就无法借用Push Request的机制来勾住事件从而获得代码的变更信息。只能利用本地的git diff机制来实现。在一个关键的环节,就是当Review不通过的时候,我的工具程序会返回一个错误码1,然后pre-merge-commit的hook也会捕获到这个异常码,然后这个hook也应该以1退出。但问题就是退出之后,会在工作区留一个MERGE_HEAD以及未合并完的代码,而且在hook触发的机制下是无论如何删不掉的,删掉还会自动生成。所以需要用户手动执行Git merge –abort命令。虽然GPT一再解释这是Git的机制、Git的设计,不能破坏Git的状态机,建议我使用Wapper的方式来完成。但我这个工具就是要给团队用的,说不定哪个大笨鸟让他自己操作肯定就操作错了,所以我还是希望能解决这个问题,我其实想到了最终利用异步的机制。但是我就一直问GPT让他想办法,他就一直说不行,不能这么干,于是有了下面的对话:


(此处略过一部分)

(又给了好几版🤣)

真6