programing

gitbash 명령줄 완료를 구성하는 방법은 무엇입니까?

linuxpc 2023. 5. 16. 22:13
반응형

gitbash 명령줄 완료를 구성하는 방법은 무엇입니까?

들어 머신에서 예: 새운우머서방다니실습을 했습니다.sudo apt-get git입력할 때 완료가 없습니다. git check[tab].

저는 http://git-scm.com/docs, 에서 아무것도 찾지 못했지만 요즘 IIRC 완료는 git 패키지에 포함되어 있고 저는 단지 제 bashrc에 올바른 항목이 필요합니다.

리눅스에서

배포에서 는 대분의배서완료스는트에 됩니다./etc/bash_completion.d/(또는)/usr/share/bash-completion/completions/git할 때 github가 없습니다.당신은 그것을 사용하기만 하면 됩니다 - 이 줄을 당신의 것에 추가하세요..bashrc:

source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git

Ubuntu 일부 버전에서는 git autocomplete가 기본적으로 손상될 수 있습니다. 이 명령을 실행하여 다시 설치하면 다음 문제가 해결됩니다.

sudo apt-get install git-core bash-completion

Mac에서

Homebrew 또는 MacPorts를 사용하여 Git 완료를 설치할 수 있습니다.

홈브루

한다면$BASH_VERSION> 4:brew install bash-completion@2(업데이트 버전) MacOS 기본 버전으로 제공되는 bash 버전이 3.2.57 (1)-release와 함께 제공되는지 특별히 주의하십시오.

에 더하다..bash_profile:

  [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"

bash: 이전버의전: bash:brew install bash-completion

에 더하다..bash_profile:

[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion

맥포트

sudo port install git +bash_completion

그런 다음 이것을 당신의 것에 추가합니다..bash_profile:

if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
fi

이 안내서의 자세한 내용:Bashgit 설치 완료

모든 경우 변경사항을 적용하려면 새 셸을 만들어야 합니다(새 터미널 탭/창 열기).

저도 같은 문제가 있었습니다. 아래 단계를 따릅니다.

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

을 그런다다줄추다니가합을에 하세요..bash_profile 폴더 에 표시됨 (홈 폴더)

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi

출처 : http://code-worrier.com/blog/autocomplete-git/

표시되는 대부분의 지침은 다운로드하라는 내용입니다.

https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash

할 수 있습니다..bashrc.

하지만 그것에는 문제가 있습니다, 왜냐하면 그것은 참조하고 있기 때문입니다.master의 최신 git-completion.bash문제는 당신이 설치한 git 버전과 호환되지 않기 때문에 때때로 고장이 날 수 있다는 것입니다.

사실, 지금 당장은 그것이 깨질 것입니다. 왜냐하면mastergit-completion.bash에는 git v2.18이 필요한 새로운 기능이 포함되어 있지만 패키지 관리자 및 설치 관리자 중 아직 업데이트된 기능이 없습니다.입니다.unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config

따라서 가장 안전한 해결책은 설치한 GIT와 일치하는 버전/태그를 참조하는 것입니다.예:

https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash

로 다을포니다합함이 .v2.17."URL" 에 있습니다.master그런 다음 bash 시작 스크립트에서 소스를 생성해야 합니다.

우분투 14.10

를 설치합니다.git-core그리고.bash-completion

sudo apt-get install -y git-core bash-completion
  • 현재 세션 사용의 경우

    source /usr/share/bash-completion/completions/git
    
  • 모든 세션에 대해 항상 활성화하려면

    echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc
    

을 당신의 에서 하세요.~/.bashrc:

source /usr/share/bash-completion/completions/git

은 "설치"를 입니다.bash-completion그렇게 할 필요는 없지만, 그렇게 한다면, 완성품을 직접 조달할 필요는 없습니다.둘 다 하는 게 아니라 둘 다 하는 겁니다.

보다 일반적인 솔루션은 bash-completion 프로젝트에서 권장하는 대로 시스템 위치를 쿼리하는 것입니다.

source "$(pkg-config --variable=completionsdir bash-completion)"/git

Ubuntu에는 다음과 같은 파일이 설치되어 있습니다.

source /etc/bash_completion.d/git-prompt

크를따로이수있다니습할동링으음다라▁the▁into▁links다▁you▁the▁follow에 들어갈 수 있습니다./usr/lib/git-core폴더를 누릅니다.하거나 PS1을 사용하는 과 방법을 수 .__git_ps1

Xcode 개발자 도구를 통한 macOS

현재 macOS에 게시된 모든 답변 중 이는 jmt의 매우 간단한 코멘트에만 언급되어 있습니다...

Xcode 개발자 도구가 이미 설치되어 있다면 새로운 것을 다운로드할 필요가 없습니다.

대신에, 당신은 이미 존재하는 것을 찾기만 하면 됩니다.git-completion.bash파일로 저장하고 소스로 저장합니다..bashrc다음 디렉터리를 확인하십시오.

  • /Applications/Xcode.app/Contents/Developer/usr/share/git-core
  • /Library/Developer/CommandLineTools/usr/share/git-core

그것이 실패하면, Git 자체가 당신을 도울 수 있을지도 모릅니다.가 행할때실을 할 때.git config는 음과같이다오, git는음는설보정고다합니을서에에서 온 합니다.gitconfig 내디렉터와같있파일는에은리렉터와 같은 한 파일git-completion.bash:

$ git config --show-origin --list
...
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig    credential.helper=osxkeychain
...

또는 언제든지 기계를 강제로 검색하여 커피를 마실 수 있습니다.

$ find / -type f -name git-completion.bash 2>/dev/null

따라서, 나는 나를 위해 다음과 같은 삽입을 가지고 있습니다.~/.bashrc:

# Git shell completion and prompt string on macOS
_git_dir="/Applications/Xcode.app/Contents/Developer/usr/share/git-core"
if [ -f "${_git_dir}/git-completion.bash" ]; then
    source "${_git_dir}/git-completion.bash"
fi
if [ -f "${_git_dir}/git-prompt.sh" ]; then
    source "${_git_dir}/git-prompt.sh"
fi
unset _git_dir

git 프롬프트 문자열 스크립트는 동일한 디렉토리에 있기 때문에 소스도 제공합니다.

(macOS Catalina에서 테스트됨)

누군가에게 도움이 될 수 있습니다.

다음 링크에서 .git-completion.bash를 다운로드한 후,

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

__git_ps1 함수를 사용하려고 했는데 오류가 발생했습니다.

 -bash: __git_ps1: command not found

__git_ps1이 git-prompt.sh 에 정의되어 있기 때문에 이 명령어가 작동하려면 마스터와 별도로 스크립트를 다운로드해야 합니다. .git-transition.dll을 다운로드하는 것과 마찬가지로 git-transition.dll을 다운로드합니다.sh:

curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git

그런 다음 .vmdk_profile에 다음을 추가합니다.

source ~/.bash_git
if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
export PS1='\W$(__git_ps1 "[%s]")>'
fi

source ~/.vmdk.git가 다운로드한 파일을 실행하고

export PS1='\W$(__git_ps1 "[%s]")명령은 현재 작업 디렉터리 뒤에 체크아웃 지점 이름을 추가합니다(git 저장소인 경우).

그래서 다음과 같이 보일 것입니다.

dir_Name[branch_name]여기서 dir_Name은 작업 디렉토리 이름이고 branch_name은 현재 작업 중인 분기의 이름입니다.

__git_ps1은 대소문자를 구분합니다.

많은 사람들이 OS에서 탭 완료를 활성화하는 방법을 찾기 위해 여기에 오는 것 같습니다.처음부터 Git 탭 완료는 OS에 의존하지 않고 셸에 의존한다는 점에 유의해야 합니다.오늘날 대부분의 셸은 bash, zsh 또는 fish와 같은 다양한 유닉스 기반 운영 체제에서 작동합니다.Powershell과 같은 모든 주요 OS에서 선별된 몇 가지 작업이 가능성이 있습니다.

사용 중인 유닉스 셸이 확실하지 않으면 시도해 보십시오.echo $SHELL또는 이 질문을 봅니다.

Bash(대부분의 Linux 디스트로스)

탭 부분의유서배탭완에료기며있으사용되에 설치됩니다./etc/bash_completion.d/또는/usr/share/bash-completion/completions/git완료 스크립트가 사용되고 있지 않기 때문에 여기에 있을 가능성이는 완료 스크립트가 사용되지 않기 때문일 수 있습니다.해 보세요..bashrc:

source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git

그런 다음 새 터미널에서 탭 완료를 다시 시도합니다.

git autocomplete가 손상되었거나 설치되지 않은 경우 다음 명령을 실행하여 다시 설치하면 문제가 해결됩니다.

sudo apt-get install git-core bash-completion

새 터미널에서 탭 완료를 다시 시도합니다.

자세한 내용은 Git 책 부록 A: Git in Other Environments - Git in Bash를 참조하십시오.

bash 사용자를 위해 macOS에 git 탭 완료 설치

MacOS에서 bash 셸을 사용하는 경우 홈브루 또는 맥포트를 사용하여 git 완료를 설치할 수 있습니다.이 방법은 @sergey-evstifev의 답변을 참조하십시오.

Zsh(macOS, 일부 Linux 디스트로스)

MacOS 및 여러 Linux 디스트리뷰터는 기본 터미널 셸로 Zsh를 사용합니다.탭하려면 Zsh에 Git 에 추가합니다..zshrc:

autoload -Uz compinit && compinit

그런 다음 새 터미널에서 탭 완료를 다시 시도합니다.

선택 사항:git 정보가 있는 테마에 대해 Oh My Zsh 플러그인을 추가하는 것도 고려해 보십시오.

자세한 내용은 Git 책 부록 A: Git in Other Environments - Git in Zsh를 참조하십시오.

파워셸(Windows)

Windows의 탭 완료는 posh-git로 Powershell에 추가할 수 있습니다(명령 프롬프트에서는 지원되지 않습니다).

Powershell에 posh-git을 설치하려면,

은 "" " " " " " " " 중 .RemoteSigned또는Unrestricted 합니다.Get-ExecutionPolicy두값 중 되지 않은 하고 PowerShell의 관리자를 실행합니다.Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm.

그런 다음 PowerShellGet으로 설치합니다.

PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force

그런 다음 새 터미널에서 탭 완료를 다시 시도합니다.

초콜릿, 스쿠프 또는 수동 설치 지침은 고급 깃 허브 페이지를 참조하십시오.

선택 사항:또한 지능형 탭 완성을 위한 명령줄 IntelliSense가 있는 Powershell 7로 업그레이드하는 것도 고려해 보십시오.

자세한 내용은 Git 책 부록 A: Git in Other Environments - Git in Powershell을 참조하십시오.

창문들

명령 프롬프트(CMD)에서 Windows 11에서 최종적으로 작동하는 방법:

우분투

여기에 아름다운 이 있습니다.Ubuntu 16.04에서 근무했습니다.

창문들

Git Bash는 자동 완성을 허용하는 도구입니다.이것이 표준 분포의 일부인지 확실하지 않으므로 이 링크도 유용합니다.그나저나, Git Bash는 리눅스 셸 명령을 사용하여 윈도우에서 작업할 수 있게 해주는데, 이는 GNU/리눅스 환경에 경험이 있는 사람들에게 좋은 일입니다.

아치 리눅스

/usr/share/git/completion/git-completion.bashfiles 중 .

예:

# ~/.bashrc

source /usr/share/git/completion/git-completion.bash

다음과 같은 다른 위치에서 스크립트를 찾을 수 있습니다./usr/share/bash-completion/completions/git하지만 이 대본들은 제게 효과가 없었습니다.

맥 M1

Mac M1 환경을 사용하는 사용자의 경우 홈브루를 통해 설치할 수 있었습니다.

brew install bash-completion

그런 다음 ~/.bash_profile 또는 ~/.bashrc(사용하는 모든 항목)에 추가됩니다.

[[ -r "/opt/homebrew/Cellar/bash-completion/1.3_3/etc/profile.d/bash_completion.sh" ]] && . "/opt/homebrew/Cellar/bash-completion/1.3_3/etc/profile.d/bash_completion.sh"

버전 번호(1.3_3)를 업데이트해야 할 수 있습니다.당신은 그 디렉토리에서 그것을 찾기만 하면 됩니다.더 좋은 방법이 있는지 알고 싶습니다.

22에서는 Ubuntu 22.04의 이만 하면 ..bashrc또는.zshrc

source /etc/bash_completion.d/git-prompt

Git 프로젝트의 Github에서 Git 명령을 자동으로 완료하기 위한 bash 파일을 제공합니다.

홈 디렉토리에 다운로드하여 bash를 실행해야 합니다.다음 블로그 게시물에서 (단계별로) 완벽하게 설명되는 두 단계입니다.

코드워리어 블로그: autocomplete-git/

맥에서 테스트해봤는데 다른 시스템에서도 작동할 것 같습니다.다른 운영 체제에도 동일한 접근 방식을 적용할 수 있습니다.

아래를 .bashrc에 넣고 터미널을 다시 시작합니다.Gitrepo로 이동하여 프롬프트에서 경로를 확인합니다.

PS1='\[\033[0;32m\]\[\033[0m\033[0;32m\]\u\[\033[0;36m\] @ \[\033[0;36m\]\h \w\[\033[0;32m\]$(__git_ps1)\n\[\033[0;32m\]└─\[\033[0m\033[0;32m\] \$\[\033[0m\033[0;32m\] ▶\[\033[0m\] '

언급URL : https://stackoverflow.com/questions/12399002/how-to-configure-git-bash-command-line-completion

반응형