내가 실행하고 싶었지만 실행하지 않는 git push
의 불쾌감을 없애기 위해이 글을 작성했습니다! 네, 이유가 있습니다. (모든 쓰레기를 원격지로 보내면 안됩니다.) 리모컨은 제 GitHub 포크이며, 거기서 쓰레기가 튀어 나옵니다.
이것은 Eugene Kay's .bashrc
을 기반으로합니다 (나는 cd
을 유지했지만 나를 위해 작동하지 않는 부분은 which git
입니다). .bashrc
또는 .zshrc
에 다음을 추가하십시오.
function git() {
# Path to the `git` binary
GIT="/usr/bin/git"
# Sanity check
if [ ! -f ${GIT} ]
then
echo "Error: git binary not found" >&2
return 255
fi
# Command to be executed
command=$1
# Remove command from [email protected] array
shift 1
# Check command against list of supported commands
case $command in
"cd")
cd $(git rev-parse --show-toplevel)/${1}
;;
"push")
if [ -z "$1" ]
then
$GIT push || $GIT push -u origin $($GIT rev-parse --abbrev-ref @)
else
$GIT ${command} "[email protected]"
fi
;;
*)
# Execute the git binary
$GIT ${command} "[email protected]"
;;
esac
# Return something
return $?
}
출처
2014-06-28 07:51:17
chx
답장을 보내 주셔서 감사합니다. 가능한 한 커밋에 약간의 오버 헤드가있는 것을 선호합니다. 매번 단원 테스트를하는 것은 고통입니다. 이것은 외부 "프로덕션"분기로 푸시해야 실행됩니다. 또한 Github은 사전 수신 후크를 제공하지 않으므로 반대쪽에서 수신해도 작동하지 않습니다. – Matt
주어진 커밋에서'-n' 또는'--no-verify'를 사용하여'pre-commit' 후크를 건너 뛸 수 있습니다. 물론'commit-msg' 훅을 건너 뛰고,'-n'을 항상 사용하는 버릇이 생기면'-n'을 남겨 두는 것을 잊어 버릴 수도 있습니다. 당신이 확인하길 원했던 것. :-) 완벽한 솔루션은 없습니다. 당신은 당신이 살 수있는 단점을 골라 내야 만합니다. – torek