"git fetch --tags"에 "git fetch"가 포함되어 있습니까?
질문 - 은 " fetch" 의인 " fetch" 의입니다.git fetch --tags?
즉, 내가 뛰면git fetch --tags즉시 도망쳐야 할 이유가 있습니까?git fetch바로 뒤에?
때어는?git pull그리고.git pull --tags같은 상황?
참고: Git 1.9/2.0(2014년 1분기)부터 시작,git fetch --tags옵션 없이 동일한 명령줄에서 가져온 태그 외에도 태그를 가져옵니다.
태그만 가져오는 방법
git fetch <remote> 'refs/tags/*:refs/tags/*'
세부 정보:
마이클 해거티(mhagger)의 commit c5a84e9를 참조하십시오.
"이에전▁fetch fetch"
--tags하는 것과 한 것으로 되었습니다.refs/tags/*:refs/tags/*은 줄서에명특; 히은그, 것령▁the를 유발했습니다.
remote.<name>.refspec무시할 구성입니다.그러나 다른 참조를 가져오지 않고 태그를 가져오는 것은 매우 유용하지 않은 반면, 다른 참조 외에도 태그를 가져올 수 있는 것은 매우 유용합니다.
따라서 이 옵션의 의미를 후자로 변경합니다.사용자가 태그만 가져오려는 경우에도 명시적인 refspec을 지정할 수 있습니다.
git fetch <remote> 'refs/tags/*:refs/tags/*'는 "1.8.0.3 이의문는"의이러한 점에 하시기 바랍니다.
fetch --tags행동
커밋 f0cb2f1(2012-12-14)fetch --tags문서가 이전 행동과 일치하도록 만들었습니다.
이 커밋은 새 동작에 맞게 설명서를 변경합니다( 참조).
가져올 태그 외에 모든 태그를 원격에서 가져올 것을 요청합니다.
2 () Git 2.5 (2015년 2분기) 이후git pull --tags보다 강력합니다.
2015년 5월 13일 폴 탄()pyokagan의 커밋 19d122b를 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- commit cc77b99, 2015년 5월 22일)
pull삭제합니다.--tags후보가 없는 입니다. 예를 참조하십시오.
441ed41 ("
git pull --tags메시지와 가 발생했습니다 1 더나은메시와발생습니했다가류오께함지,, 2007-12-28, Git 1.5.4+),git pull --tags는 오류 합니다.git-fetch병합 후보를 반환하지 않았습니다.It doesn't make sense to pull all tags; you probably meant: git fetch --tags왜냐하면 그 당시에는
git-fetch --tags구성된 refspec을 재정의하므로 병합 후보가 없습니다.따라서 혼동을 방지하기 위해 오류 메시지가 도입되었습니다.하지만, c5a84e9 이후로 (
fetch --tags다른 항목 외에 태그 가져오기, 2013-10-30, Git 1.9.0+),git fetch --tags구성된 refspec 외에 태그도 가져옵니다.
합병 은 따서합후보없라병는발경생다우음같에아다 때문이 아닙니다.--tags설정되었습니다.따라서 이 특수 오류 메시지는 이제 관련이 없습니다.혼동을 방지하려면 이 오류 메시지를 제거하십시오.
깃 포함 2.11+ (2016년 4분기)git fetch더 빠릅니다.
제프 peff킹()의 커밋 5827a03(2016년 10월 13일)을 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- 2016년 10월 26일 커밋 9fcd144에서)
fetch다음 태그에 "quick" 사용
추적 중인 분기와 관련이 없는 태그가 많은 원격에서 가져올 때 태그가 가리키는 개체가 저장소에 너무 신중하게 존재하는지 확인할 때 너무 많은 주기를 낭비하곤 했습니다.
이 패치는 HAS_를 사용하도록 가져오기를 티칭합니다.SHA1_QUICK은 동시 재포장으로 신속하게 처리할 수 있는 경우에 대비하여 정확성을 희생합니다.
다음은 위에서 설명한 것과 유사한 상황을 설정하는 포함된 Perf 스크립트의 결과입니다.
Test HEAD^ HEAD ---------------------------------------------------------- 5550.4: fetch 11.21(10.42+0.78) 0.08(0.04+0.02) -99.3%
이는 다음과 같은 경우에만 적용됩니다.
- 고객 측에서 만들 팩이 많습니다.
reprepare_packed_git()값이 비쌉니다(가장 비싼 부분은 정렬되지 않은 목록에서 중복 항목을 찾는 것이며, 현재는 2차 목록입니다).- 서버 측에 자동 팔로우 후보(즉, 클라이언트에 없는 태그 참조)가 많이 필요합니다.각각은 팩 디렉토리의 재읽기를 트리거합니다.
- 일반적인 상황에서 클라이언트는 이러한 태그를 자동으로 따르며 한 번의 큰 페치 후에는 (2)가 더 이상 사실이 아닙니다.
그러나 이러한 태그가 클라이언트가 가져오는 것과 연결되지 않은 기록을 가리키면 자동으로 추적되지 않으며 모든 검색에 해당 후보가 영향을 미칩니다.
Git 2.21(2019년 2월)은 구성이 기본 구성이 아닐 때 회귀를 도입한 것으로 보입니다('+refs/heads/*:refs/remotes/origin/*')
fatal: multiple updates for ref 'refs/tags/v1.0.0' not allowed
Git 2.24 (2019년 4분기)는 또 다른 최적화를 추가합니다.
스즈키 draftcode마사야()의 커밋 b7e2d8b(2019년 9월 15일)를 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- 커밋 1d8b0df, 2019년 10월 7일)
fetch임쓰를 합니다.oidset.
때
git fetch클라이언트는 보급된 태그의 OID가 이미 가져오기 요청의 원하는 OID 집합에 있는지 확인합니다.
이 검사는 선형 스캔으로 수행됩니다.
참조가 많은 리포지토리의 경우 이 검사를 반복하는 데 15분 이상 걸립니다.는 이속를높다생성다니합음을이면을 .
oid_set다른 심판의 OID를 위해.
참고: 이 답변은 git v1.8 이상에서만 유효합니다.
이 중 대부분은 다른 답변과 의견에서 언급되었지만, 다음은 간결한 설명입니다.
git fetch또헤드fetch를지헤다분드기가니져옵.든 option한 모든 및 이러한 할 수 있는 .fetch config 옵션), 이에 필요한 모든 커밋 및 이러한 분기에서 도달할 수 있는 모든 태그.대부분의 경우 이러한 방식으로 모든 태그에 연결할 수 있습니다.git fetch --tags모든 태그를 가져오고 해당 태그에 필요한 모든 커밋을 가져옵니다.가져온 태그에서 분기 헤드에 연결할 수 있더라도 분기 헤드는 업데이트되지 않습니다.
요약:.가져오기만 사용하여 완전히 최신 상태로 유지하려면 두 가지 작업을 모두 수행해야 합니다.
또한 별칭으로 문제를 해결하는 명령줄을 입력하는 경우가 아니라면 "두 배로 느리지" 않습니다.두 요청은 서로 다른 정보를 요구하기 때문에 기본적으로 오버헤드가 없습니다.
제가 직접 답변을 드리겠습니다.
저는 차이가 있다고 판단했습니다."git fetch --tags"는 모든 태그를 가져올 수 있지만 새로운 커밋을 가져오지는 않습니다!
완전히 "최신" 상태가 되려면 이 작업을 수행해야 합니다. 즉, 병합 없이 "기트 풀"을 복제해야 합니다.
$ git fetch --tags
$ git fetch
이것은 유감스러운 일입니다. 왜냐하면 두 배나 느리기 때문입니다."git fetch"가 일반적으로 하는 것을 하고 모든 태그를 가져올 수 있는 옵션을 가지고 있다면 좋을 것입니다.
는 여서일반문제는인적기▁that문▁the는제▁here입니다.git fetch가져올 것입니다+refs/heads/*:refs/remotes/$remote/*이러한 커밋 중 하나에 태그가 있으면 해당 태그도 가져옵니다.그러나 원격의 분기에서 연결할 수 없는 태그가 있는 경우 태그를 가져오지 않습니다.
그--tags을 " " " " 로 전환합니다.+refs/tags/*:refs/tags/*물어볼 수 있습니다.git fetch둘 다 잡으려고요.나는 그냥 하는 것이 꽤 확실합니다.git fetch && git fetch -t다음 명령을 사용합니다.
git fetch origin "+refs/heads/*:refs/remotes/origin/*" "+refs/tags/*:refs/tags/*"
이 repo의 기본값으로 설정하려면 기본 가져오기에 두 번째 refspec을 추가할 수 있습니다.
git config --local --add remote.origin.fetch "+refs/tags/*:refs/tags/*"
두 이초은 1를추것다입니가 됩니다.fetch =의 한 줄.git/config이 리모컨을 위해.
저는 프로젝트를 위해 이것을 처리할 방법을 찾는데 시간을 보냈습니다.이것이 제가 생각해 낸 것입니다.
git fetch -fup origin "+refs/*:refs/*"
제 경우에는 이러한 기능이 필요했습니다.
- refspecrefspec을 를 .
refs/*:refs/* - 및 포워드로 덮어씁니다.
+. - 한
-u - 에 없는 및
-p - 그리고 확신하도록 강요합니다.
-f
의 경우, 대분의상서에황부서▁in.git fetch원하는 작업을 수행해야 합니다. 즉, '원격 저장소에서 새 항목을 가져와 로컬 지점에 병합하지 않고 로컬 복사본에 저장'합니다. git fetch --tags새 태그를 제외하고는 아무 것도 얻지 못한다는 것을 제외하고는 정확히 그렇게 합니다.
그런의서에미서.git fetch --tags로 의상집 결아닙니다의 .git fetch그것은 사실 정반대입니다.
git pull물론, 그것은 단지 포장지일 뿐입니다.git fetch <thisrefspec>; git merge이 좋습니다.git fetch과 과잉git merge 전호에출기로 점프하기 .git pull단순히 그것이 당신이 무엇을 이해하는 것을 돕기 때문입니다.git pull애당초 하고 있는 것입니다.
그렇긴 하지만, 그 관계는 정확히 다음과 같습니다.git fetch.git pull는 의상집 의 입니다.git pull --tags.
git fetch upstream --tags
잘 작동합니다. 새 태그만 받고 다른 코드 기반은 얻지 못합니다.
언급URL : https://stackoverflow.com/questions/1204190/does-git-fetch-tags-include-git-fetch
'programing' 카테고리의 다른 글
| Cosmos DB - 문서 삭제 (0) | 2023.05.05 |
|---|---|
| pyenv를 사용하여 virtualenv를 활성화하지 못했습니다. (0) | 2023.05.05 |
| 액세스 97에서 전체 경로의 디렉터리 부분(파일 이름 제외) 찾기 (0) | 2023.05.05 |
| Windows Azure로 푸시한 후 오류 발생: 이 디렉터리 또는 페이지를 볼 수 있는 권한이 없습니다. (0) | 2023.05.05 |
| mongod 포크 시작 중, 오류: 하위 프로세스 실패, 오류 번호 1과 함께 종료됨 (0) | 2023.05.05 |