TencentBlueKing / ci-checkout

pull git repo plugin 拉取git仓库插件
10 stars 12 forks source link

feat: 判断工作空间是否是merge中状态 #39

Closed mingshewhe closed 1 year ago

mingshewhe commented 1 year ago

当上一次构建冲突时,如果本次构建复用上一次工作空间,git的状态是merge冲突中,如果源分支中有新增的文件,那么新增文件就会变成没有被版本跟踪的状态,这个时候如果仅开启git reset而不开启git clean,就会导致工作空间清理不干净,因为git reset只能清理已经版本跟踪的文件,而清理不了未版本跟踪的文件。

解决方案:

插件在清理工作空间时,判断当前空间是否是merge中状态,通过判断.git/MERGE_HEAD文件是否存在,如果是merge状态,执行git merge --abort命令中断merge