작업이 끝나서 잘 모르기 때문에 누군가가 원격 지점을 삭제하면 작업을 수행하지 않으며 git fetch --prune
결국 삭제 된 지점을 다시 밀어 넣습니다.
매번 그것을 지정하지 않고 페치 / 풀을 할 때 Git이 프룬 모드를 사용하도록 강제 할 수있는 솔루션이 있습니까?
답변
”
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
항상에 --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
설정이있는 경우 재정의 합니다.
답변
당신은 항상 원하는 경우 prune
때를 fetch
, 내가 사용하는 제안 할 수 별칭 .
입력 git config -e
하여 편집기를 열고 특정 프로젝트의 구성을 변경하고 다음과 같은 섹션을 추가하십시오.
[alias]
pfetch = fetch --prune
git pfetch
정리 하면 가져 오는 시간이 자동으로 수행됩니다.