今天在开发项目时,合并master的代码,本来流程好好的,解决冲突,commit代码,结果提交代码竟然失败了:
lint-staged generated an argument string of 10048 characters, and commands might not run correctly on your platform.
It is recommended to use functions as linters and split your command based on the number of staged files. For more info, please visit
翻译过来就是:
lint staged生成了一个10048个字符的参数字符串,并且命令可能无法在您的平台上正确运行。建议将函数用作linter,并根据暂存文件的数量拆分命令。更多信息
那原因就很明显了,我们的项目中使用yorkie 检查 commit message 是否符合规范,但是因为提交的文件太多,导致lint staged生成的参数字符串太长,无法在我的电脑上正常运行。
解决
怎么解决呢?其实最简单的解决方案无疑是跳过检查,网上找到的方案多数都是这个套路,但是我不想这样做,下面是我给出的一个我的解决方案:
说白了,这次的报错不是因为我的代码不规范,而是我提交的代码太多了,只要我分批次的提交就好了。但是我也不希望无缘无故一次合并分支的提交被僵硬的拆分成多次提交。所以我利用–amend将提交进行合并。
例如:我要分两批进行提交
因此我先vscode的提交批量暂存了部分文件,使用
# 先选中一部分文件,进行暂存
git commit -m '提交的信息'
# 提交完成后对剩余文件进行暂存,然后
git commit --amend
# 输入回车后,进入了vim的界面,在英文输入法的模式下,按下:wq再按回车,就可以将对上一次提交进行修改了
类似思路下,使用git rebase
等也是一样的。
ps:使用vscode的源代码管理工具是可以很方便的批量选中文件进行暂存的,应该其他的GIT GUI工具也有类似的功能。所以可以看到上面我是说先选中一部分文件进行暂存,因为这部分不是通过命令操作的。