import { existsSync, readFileSync, writeFileSync } from 'fs'; import { join, resolve } from 'path'; function getCurrentBranchName(p = process.cwd()) { if (!existsSync(p)) return false; const gitHeadPath = join(p, '.git', 'HEAD'); if (!existsSync(gitHeadPath)) { return getCurrentBranchName(resolve(p, '..')); } const headContent = readFileSync(gitHeadPath, 'utf-8'); return headContent.trim().split('/')[2]; } const branchName = getCurrentBranchName(); if (branchName) { const msgPath = '.git/COMMIT_EDITMSG'; const msg = readFileSync(msgPath, 'utf-8'); const reference = branchName.match(/^\d+/); const referenceTag = `refs #${reference}`; if (!msg.includes(referenceTag) && reference) { const splitedMsg = msg.split(':'); if (splitedMsg.length > 1) { const finalMsg = splitedMsg[0] + ': ' + referenceTag + splitedMsg.slice(1).join(':'); writeFileSync(msgPath, finalMsg); } } }