답변:
"
git fetch
"(따라서 "git pull
"도)는 "fetch.prune
"및 "remote.*.prune
"구성 변수를 확인하고 "--prune
"명령 행 옵션이 제공된 것처럼 작동하는 방법을 배웠습니다 .
즉, remote.origin.prune을 true로 설정하면
git config remote.origin.prune true
모든 git fetch
또는 git pull
자동 치기 것입니다.
참고 : Git 2.12 (2017 년 1 분기)는이 구성과 관련된 버그를 수정하여 git remote rename
오작동 을 일으킬 수 있습니다.
" git remote의 이름을 바꾸려면 어떻게합니까? "를 참조하십시오 .
commit 737c5a9 에서 더 많은 것을보십시오 :
"
git fetch --prune
"가 없으면 다른 쪽에서 이미 제거한 분기에 대한 원격 추적 분기가 영구적으로 유지됩니다.
어떤 사람들은 항상 "git fetch --prune
"을 (를) 실행하려고합니다 .항상 정리하거나 특정 리모콘에서 가져올 때 사용자를 수용하려면 두 가지 새로운 구성 변수 "
fetch.prune
"및 "remote.<name>.prune
"를 추가하십시오.
- "
fetch.prune
"를 사용하면 모든 페치 조작에 대해 제거를 사용할 수 있습니다.- "
remote.<name>.prune
"를 사용하면 리모컨마다 동작을 변경할 수 있습니다.후자는 자연스럽게 전자를 재정의
--[no-]prune
하고 명령 줄 의 옵션은 구성된 기본값을 재정의합니다.
--prune
잠재적으로 파괴적인 작업 이므로 (Git은 삭제 된 참조에 대한 리플 로그를 보관하지 않습니다) 사용자 동의없이 제거하지 않기 때문에이 구성은 기본적으로 설정되어 있지 않습니다.
git config --global fetch.prune true
git config --global fetch.prune true
항상에 --prune
대한 git fetch
및 git pull
모든 Git 저장소에서 :
git config --global fetch.prune true
위의 명령은 전역 Git 구성 (일반적으로 ~/.gitconfig
)에 다음 줄을 추가합니다. git config -e --global
글로벌 구성을 보는 데 사용하십시오 .
[fetch]
prune = true
git config remote.origin.prune true
항상 --prune
하나의 단일 저장소에서 :
git config remote.origin.prune true
#^^^^^^
#replace with your repo name
이 위의 명령은 로컬 Git 구성 (일반적으로 .git/config
아래)을 마지막 줄 아래에 추가합니다 . git config -e
로컬 구성을 보는 데 사용하십시오 .
[remote "origin"]
url = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fetch = +refs/heads/*:refs/remotes/origin/*
prune = true
--global
두 번째 명령 --local
내에서 사용하거나 첫 번째 명령 내에서 대신 사용할 수도 있습니다 .
git config --global gui.pruneDuringFetch true
당신이 사용하는 경우에 git gui
관심이있을 수 있습니다 :
git config --global gui.pruneDuringFetch true
그 내용은 다음과 같습니다.
[gui]
pruneDuringFetch = true
해당 문서 git help config
:
--global
쓰기 옵션 :
~/.gitconfig
저장소 대신 글로벌 파일.git/config
에 쓰기,$XDG_CONFIG_HOME/git/config
이 파일이 존재하고~/.gitconfig
파일이없는 경우 파일에 쓰십시오 .
--local
쓰기 옵션 : 저장소
.git/config
파일에 씁니다 . 이것이 기본 동작입니다.
fetch.prune
true 인 경우 fetch는
--prune
옵션이 명령 줄에 제공된 것처럼 자동으로 작동합니다 . 도 참조하십시오remote.<name>.prune
.
gui.pruneDuringFetch
가져 오기를 수행 할 때 git-gui 가 원격 추적 분기를 제거해야하는 경우 "true" 입니다. 기본값은 "false"입니다.
remote.<name>.prune
true로 설정하면 기본적으로이 원격에서 가져 오면 원격에 더 이상 존재하지 않는 원격 추적 참조도 제거됩니다 (
--prune
옵션이 명령 행에 제공된 것처럼 ).fetch.prune
설정이있는 경우 재정의 합니다.
git config -e
하고 git config -e --global
,이 게시물에서. 더 이상 vim
git config 파일의 특정 경로를 가리키고 해당 경로가 무엇인지 생각 해야하는 명령을 입력하지 않아도됩니다.
git config --global fetch.prune true
"과 마찬가지로 (관련 문서에 대한 링크와 함께) 훌륭합니다.
당신은 항상 원하는 경우 prune
때를 fetch
, 내가 사용하는 제안 할 수 별칭 .
입력 git config -e
하여 편집기를 열고 특정 프로젝트의 구성을 변경하고 다음과 같은 섹션을 추가하십시오.
[alias]
pfetch = fetch --prune
git pfetch
정리 하면 가져 오는 시간이 자동으로 수행됩니다.
pull
와 fetch
자신의 프 i 버전. 실제로, 나는 당신 fetch = fetch --prune
이 별칭 섹션에 직접 쓸 수 있다고 생각 하므로 pull
정리 된 가져 오기를 자동으로 사용할 것입니다.
fetch = fetch --prune
작동하지 않으면 별칭으로 명령을 덮어 쓰지 못했습니다. 구 버전 (1.7.2.5)을 사용하고 있기 때문일 수 있습니다.
git fetch
! 아래 답변을