명령에 git 기본 플래그 설정
git 명령에 대해 기본적으로 플래그를 설정하는 방법이 있는지 알고 싶습니다. 특히, 나는 --abbrev-commit
실행할 때 git log
나는 실행 하고 싶 도록 플래그 를 설정하고 싶습니다 git log --abbrev-commit
.
" git 명령에 대해 기본적으로 플래그를 설정할 수있는 방법이 있습니까? " 라는 질문과 달리 --abbrev-commit을 git log에 추가하기위한 구성 플래그가없는 것 같습니다. 또한 git 매뉴얼에는 별칭을 만들 수 없다고 나와 있습니다. "스크립트 사용과 관련된 혼란과 문제를 피하기 위해 기존 git 명령을 숨기는 별칭은 무시됩니다."
세 번째 옵션은 glog=log --abbrev-commit
.gitconfig 파일 과 같은 새 별칭을 만드는 것 입니다. 그러나 나는 새로운 명령으로 내 자신의 DSL을 발명하지 않을 것입니다.
abbrev-commit
플래그가 기본적으로 설정 되도록 다른 방법이 있습니까 ??
git 버전 1.7.6부터 git config는 true로 설정할 수있는 log.abbrevCommit 옵션을 얻었습니다. 따라서 대답은 최소한 1.7.6 (이 글 현재 1.7.11.4)으로 업그레이드하고 다음을 사용하는 것입니다.
git config --global log.abbrevCommit true
사용자 지정 형식을 사용하여 기본적으로 git log
모방 할 수 있습니다 --abbrev-commit
.
git config format.pretty "format:%h %s"
git에는 명령에 대한 기본 인수를 설정하는 일반적인 메커니즘이 없습니다.
git 별칭 을 사용하여 필수 인수로 새 명령을 정의 할 수 있습니다 .
git config alias.lg "log --oneline"
그런 다음 git lg
.
일부 명령에는 동작을 변경하기위한 구성 설정도 있습니다.
VonC는 이미 그의 답변에서 쉘 래퍼를 암시했습니다. 여기에 그런 래퍼의 Bash 구현이 있습니다. 예를 들어이를에 넣으면 .bashrc
대화 형 쉘이 대문자 별칭뿐만 아니라 Git 내장 명령의 재정의를 지원합니다.
# Git supports aliases defined in .gitconfig, but you cannot override Git
# builtins (e.g. "git log") by putting an executable "git-log" somewhere in the
# PATH. Also, git aliases are case-insensitive, but case can be useful to create
# a negated command (gf = grep --files-with-matches; gF = grep
# --files-without-match). As a workaround, translate "X" to "-x".
git()
{
typeset -r gitAlias="git-$1"
if 'which' "$gitAlias" >/dev/null 2>&1; then
shift
"$gitAlias" "$@"
elif [[ "$1" =~ [A-Z] ]]; then
# Translate "X" to "-x" to enable aliases with uppercase letters.
translatedAlias=$(echo "$1" | sed -e 's/[A-Z]/-\l\0/g')
shift
"$(which git)" "$translatedAlias" "$@"
else
"$(which git)" "$@"
fi
}
그런 다음 PATH에 git log
이름이 지정된 스크립트를 넣어 재정의 할 수 있습니다 git-log
.
#!/bin/sh
git log --abbrev-commit "$@"
비슷한 문제가 있습니다 (Git 명령의 기본 옵션 중 대부분은 바보입니다). 여기 내 접근 방식이 있습니다. 다음과 같이 경로에 'grit'(또는 기타)라는 스크립트를 만듭니다.
#!/bin/bash
cmd=$1
shift 1
if [ "$cmd" = "" ]; then
git
elif [ $cmd = "log" ]; then
git log --abbrev-commit $@
elif [ $cmd = "branch" ]; then
git branch -v $@
elif [ $cmd = "remote" ]; then
git remote -v $@
else
git $cmd $@
fi
Bash 비전문가와 공유해야 할 경우를 대비하여 읽고 유지하는 것이 매우 간단합니다.
우리가 사용하는 모든 유틸리티 (svn, maven, git, ...)는 개발자에게 경로에 추가 할 하나의 디렉토리를 제공하기 위해 항상 .bat (Windows의 경우 또는 .sh)로 캡슐화됩니다.
If git is encapsulated in a wrapper script, then... everything is possible.
But that remains a solution linked to the user's setup, not linked to Git itself or the git repo.
I like the git log --oneline
format. To get it as default, use
git config --global format.pretty oneline
Credit: https://willi.am/blog/2015/02/19/customize-your-git-log-format/
참고URL : https://stackoverflow.com/questions/2500586/setting-git-default-flags-on-commands
'Programing' 카테고리의 다른 글
Symfony2의 Twig 템플릿 엔진에 개체가 있는지 어떻게 확인합니까? (0) | 2020.09.21 |
---|---|
경로 이름에 공백이있는 디렉토리로 cd 할 Bash 스크립트 (0) | 2020.09.21 |
Entity Framework 모델을 사용하여 데이터 삽입 (0) | 2020.09.21 |
Android Studio에서 모든 TODO 작업을 보는 방법은 무엇입니까? (0) | 2020.09.21 |
Visual Studio 2015는 매우 느립니다. (0) | 2020.09.20 |