programing

원격 풀 중에 모든 태그를 가져오도록 Git 기본값을 설정할 수 있습니까?

showcode 2023. 6. 19. 21:48
반응형

원격 풀 중에 모든 태그를 가져오도록 Git 기본값을 설정할 수 있습니까?

현재 다음과 같은 Git 원격 설정이 있습니다.

[remote "upstream"]
    url = <redacted>
    fetch = +refs/heads/*:refs/remotes/upstream/*

발급할 때git pull분기 마스터에서는 모든 원격 헤드가 원격/게이트웨이로 가져온 다음 원격/게이트웨이/마스터가 마스터로 병합됩니다.도달할 수 있는 모든 태그도 동시에 가져오기 때문에 매우 편리합니다.

싶다git pull헤드에서 직접 연결할 수 있는 태그뿐만 아니라 원격에서 모든 태그를 추가로 가져옵니다.저는 원래 설정을 시도했습니다.tagopt == --tags하지만 이것이 태그만 가져오는 원인이 되어 모든 것을 깨뜨렸다는 것을 발견했습니다.(주니오는 그것이 끔찍한 잘못된 구성이라고 말하기도 합니다.)

만들 방법이 있습니까?git pull원격 헤드 외에 기본적으로 모든 원격 태그를 가져오시겠습니까?

간단한git fetch --tags저를 위해 일했습니다.

태그에 대한 refspec을 로컬 구성에 추가하여 이 작업을 수행할 수 있어야 합니다.구체적으로:

[remote "upstream"]
    url = <redacted>
    fetch = +refs/heads/*:refs/remotes/upstream/*
    fetch = +refs/tags/*:refs/tags/*

--force옵션은 로컬 태그를 새로 고치는 데 유용합니다.주로 부동 태그가 있는 경우:

git fetch --tags --force

Git Pull 옵션은 또한--force옵션 및 설명은 동일합니다.

gitfetch가 <rbranch>:<lbranch> refspec과 함께 사용되는 경우 gitfetch가 가져오는 원격 브랜치 <rbranch>가 <lbranch>의 하위가 아닌 한 로컬 브랜치 <lbranch> 업데이트를 거부합니다.이 옵션은 해당 검사를 재정의합니다.

하지만, 의 문서에 따르면.--no-tags:

기본적으로 원격 저장소에서 다운로드한 개체를 가리키는 태그는 로컬로 가져와 저장됩니다.

해당 기본 문이 제한 사항이 아닌 경우 다음을 시도할 수도 있습니다.

git pull --force

저에게는 다음과 같은 것이 효과가 있는 것처럼 보였습니다.

git pull --tags

간단합니다.도아

git fetch --all

원격 태그가 삭제되었을 때는 아무런 답변도 사용할 수 없었습니다. 해당 로컬 태그는 가져오기/풀링 레포에 여전히 존재합니다.

저는 이 조합을 찾았습니다.git fetch삭제된 태그를 선택하는 유일한 방법은 다음과 같습니다.

git fetch --tags --prune --prune-tags

또는 로컬(또는 글로벌) Git 구성에 적용할 수 있습니다.

...
[remote "origin"]
    url = [gitlab url]
    fetch = +refs/heads/*:refs/remotes/origin/*
    tagopt = --tags
    prune = true
    pruneTags = true
...

좋은 부작용:이 기능은 다음에도 사용할 수 있습니다.git pull(명령줄 속성을 통해 이 작업을 수행할 수 없었습니다.)

구성을 추가하는 명령:

git config (--global) remote.origin.tagopt --tags
git config (--global) remote.origin.prune true
git config (--global) remote.origin.pruneTags true

저는 이것을 kernel.org 에서 Magit과 함께 사용합니다.

[remote "upstream"]
    url = <redacted>
    fetch = +refs/heads/*:refs/remotes/upstream/*
    tagOpt = --tags

언급URL : https://stackoverflow.com/questions/16678072/can-we-set-a-git-default-to-fetch-all-tags-during-a-remote-pull

반응형