Estou usando o git no Windows 7 (meu usuário está no grupo de administração local) com meu projeto dev, mas toda vez que eu faço alterações, o arquivo .git/COMMIT_EDITMSG
também muda:
Seu conteúdo é substituído pelo último commit msg (o que é bom)
Sua propriedade foi alterada para readonly
.
Devido a essa alteração de propriedade, o próximo commit que eu farei retornará um erro "Permission denied" ...
Como vi em outras postagens, tentei excluir os dois arquivos:
- .git/COMMIT_EDITMSG
- .git/COMMIT_EDITMSG.bak
Ou eu também tentei apenas desmarcar a propriedade readonly
manualmente, mas o problema ainda está lá após o próximo commit bem-sucedido ...
O que devo fazer para reparar este problema?
Repare que eu coloquei um prepare-commit-msg
hook que talvez seja o problema? Gancho de conteúdo abaixo:
#!/bin/bash
# Name this script "prepare-commit-msg"
# This script will prefix every commit msg with the branch name in brackets,
# except if we are on non working branch like develop or master.
# The branch name pattern is : {category}/{issue-nb}_{work-description}
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(master develop)
fi
# Find current branch name
BRANCH_NAME=$(git symbolic-ref --short HEAD)
# Remove category before slash (included)
BRANCH_NAME="${BRANCH_NAME##*/}"
# Remove description after first underscore (included)
BRANCH_NAME="${BRANCH_NAME%_*}"
# Check if the branch is excluded
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
BRANCH_IN_COMMIT=$(grep -c "\[$BRANCH_NAME\]" $1)
# Check if branch name is not null, if the current branch is not an excluded one, and if the branch name is already in the commit msg
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then
# Add brackets around branch name and Prefix passed msg with it
sed -i.bak -e "1s/^/[$BRANCH_NAME] /" $1
fi