git-файл COMMIT_EDITMSG устанавливается только для чтения после каждого коммита

501
ylerjen

Я использую git на Windows 7 (мой пользователь в локальной группе администраторов) с моим проектом dev, но каждый раз, когда я фиксирую изменения, файл .git/COMMIT_EDITMSGтоже меняется: его содержимое заменяется последним сообщением msg (что нормально). Это свойство. изменился на readonly.

Из-за этого изменения свойства следующий коммит, который я сделаю, вернет ошибку «Отказано в доступе» ...

Как я видел в других сообщениях, я пытался удалить оба файла: - .git/COMMIT_EDITMSG -.git/COMMIT_EDITMSG.bak

Или я также попытался просто снять readonlyсвойство вручную, но проблема все еще остается после следующего успешного коммита ...

Что я должен сделать, чтобы исправить эту проблему?

Заметьте, что я установил prepare-commit-msgзацепку, которая может быть проблемой? Содержание крюка ниже:

#!/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 : /_  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="$" # Remove description after first underscore (included) BRANCH_NAME="$"   # Check if the branch is excluded BRANCH_EXCLUDED=$(printf "%s\n" "$" | 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 
1

0 ответов на вопрос