새 저장소를 만들고 커밋을 시도한다고 가정해 보겠습니다. Git이 나에게 보여줬어
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
마지막 줄도 읽지 않고 git(using)이 제안한 두 줄을 실행 --global
하고 즐겁게 커밋했습니다.
일주일 후 나는 다른 프로젝트에 필요한 완전히 관련되지 않은 프로젝트에 대한 새 저장소를 만들었습니다 user.email
. 커밋을 시도하는 것에 대해 두 번 생각조차 하지 않았고 user.email
그것이 진행되어 오리진으로 푸시되었습니다.
위와 같은 상황이 두 번이나 발생했는데, 이를 금지할 수 있는 방법이 없을까 고민하게 되었습니다 git config --global
.
예를 들어, 내가 실행하면
git config --global user.email "[email protected]"
bash가 명령을 실행하지 않고 경고를 표시하길 원하지만 실행하면
git config user.email "[email protected]"
통과되길 바랍니다.
가능합니까?
답변1
가장 간단한 방법은 이 경우(Bash용)에 대한 함수를 만드는 것입니다.
git() {
for arg in "$@"; do
if [[ $arg == --global ]]; then
echo "Don't use '--global'!"
return 1
fi
done
command git "$@"
}
--global
이는 존재 여부를 확인하지 않는다는 점에 유의하십시오 .실제로git
예를 들어 다른 옵션에 대한 옵션 인수가 아닌 옵션은 적어도 쉘이 아닌 다른 곳에서 실행되는 경우에는 중요하지 않습니다. 또한 를 포함하기 위해 git 별칭을 생성하면 --global
이것 등에 의해 잡히지 않습니다. 분명히 당신은 또는 를 실행 하거나 함수 정의를 취소 command git
하여 보호를 우회 할 수도 있습니다./usr/bin/git