source

Git fetch 또는 pull을 사용한 자동 자르기

factcode 2023. 5. 14. 11:11
반응형

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

반응형