Git fetch 또는 pull을 사용한 자동 자르기
작업이 끝나고 잘 몰라서 원격 지사를 삭제한 경우에는 작업을 수행하지 않습니다.git fetch --prune
그리고 결국 삭제된 분기를 다시 밀어넣을 것입니다.
매번 지정할 필요 없이 Git가 가져오기/당길 때 제거 모드를 사용하도록 강제할 수 있는 실행 가능한 솔루션이 있습니까?
1.8.5(2013년 4분기) 이후:
"
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의 이름을 변경하려면 어떻게 합니까?"를 참조하십시오.
커밋 737c5a9에서 더 보기:
" 없이"
git fetch --prune
다른 쪽에서 이미 제거한 분기에 대한 원격 검색 분기는 영구적으로 유지됩니다.
일부 사람들은 항상 실행하기를 원합니다.git fetch --prune
".항상 제거하거나 특정 원격에서 가져올 때 사용자를 수용하려면 두 개의 새 구성 변수를 추가합니다."
fetch.prune
그리고 "remote.<name>.prune
":
- "
fetch.prune
모든 가져오기 작업에 대해 제거를 사용할 수 있습니다.- "
remote.<name>.prune
원격당 동작을 변경할 수 있습니다.후자는 자연스럽게 전자를 무시할 것이고, 그리고.
--[no-]prune
명령줄의 옵션이 구성된 기본값을 재정의합니다.부터
--prune
는 잠재적으로 파괴적인 작업입니다(Git는 삭제된 참조에 대한 reflog를 아직 보관하지 않음). 사용자 동의 없이 제거하지 않기 때문에 이 구성은 기본적으로 설정되지 않습니다.
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
레퍼런스
의 해당 설명서:
--global
쓰기 옵션의 경우: 전역에 쓰기
~/.gitconfig
가 입니다..git/config
에 편지를 쓰다.$XDG_CONFIG_HOME/git/config
, "file"은 "file"입니다.~/.gitconfig
파일이 그렇지 않습니다.
--local
옵션의 : : 파일 이름: 파일 이름: 파일 이름
.git/config
파일. 이것이 기본 동작입니다.
fetch.prune
으로 true "fetch"와 같은 동작을 합니다.
--prune
명령줄에 옵션이 지정되었습니다. 항목:remote.<name>.prune
.
gui.pruneDuringFetch
git-gui가 fetch를 수행할 때 원격 검색 분기를 제거해야 하는 경우 "true".기본값은 "false"입니다.
remote.<name>.prune
true로 설정하면 기본적으로 이 리모컨에서 가져오면 원격에 더 이상 존재하지 않는 원격 추적 참조도 제거됩니다(마치
--prune
옵션이 명령줄에 제공되었습니다. 재정의fetch.prune
설정(있는 경우).
당신이 항상 원한다면,prune
이 가너언제▁you▁when제가fetch
별칭을 사용하는 것이 좋습니다.
냥입 력그를 입력하세요.git config -e
편프구의변성다추같다섹가니합션을은과 같은 입니다.
[alias]
pfetch = fetch --prune
고 올 지 때 가 때와 함께 때.git pfetch
자르기가 자동으로 수행됩니다.
그리고 결국 삭제된 분기를 다시 밀어넣을 것입니다.
이것은 당신이 해결해야 할 문제라고 생각합니다.밀어넣으려 하지 않는 분기를 밀어넣도록 Git을 구성한 경우 문제가 될 수 있습니다.개인적으로 밀어넣을 분기를 명시적으로 지정할 때만 밀어넣도록 설정하는 것을 선호합니다.
Git 저장소에서 푸시 설정을 구성하는 방법에 대한 자세한 내용은 https://stackoverflow.com/a/948397/3753318 을 참조하십시오.
언급URL : https://stackoverflow.com/questions/18308535/automatic-prune-with-git-fetch-or-pull
'source' 카테고리의 다른 글
창에서 Git Bash의 'git diff' 결과를 종료하려면 어떻게 해야 합니까? (0) | 2023.05.14 |
---|---|
Enum 특성에 대한 주석 유형 (0) | 2023.05.14 |
Git: Git을 사용할 때 권한 거부(공개 키) 오류를 해결하는 방법은 무엇입니까? (0) | 2023.05.14 |
pythonw.exe 또는 python.exe? (0) | 2023.05.14 |
익명 클래스의 일반 목록 (0) | 2023.05.14 |