더 이상 중요하지 않은 git 저장소에 오래된 태그가 있습니다. git 태그를 실행할 때 태그가 기본적으로 표시되지 않도록 태그를 아카이브하고 싶습니다. 역사를 지키고 싶기 때문에 나는 그들을 삭제하고 싶지 않습니다. 어떻게해야합니까?어떻게 이전 git 태그를 보관할 수 있습니까?
답변
복제에게 REPO를 복원 할 수 있습니다.
을(@AndrewC는 질문에 대한 답변에이 답변을 적었지만 질문에 대한 대답으로 간주됩니다.)
태그를 삭제할 때주의해야합니다. 어쩌면 태그가 일부 sommit에 대한 유일한 참조 일 수도 있습니다.
branch
|
V
o---o---o----o---o---o
\
o---o---o---o
^
|
someTag
커밋에 대한 마지막 참조를 제거하면 언젠가는 커밋을 잃게됩니다. 언젠가는 git gc
이 그들을 수집하자마자 의미합니다. 이 문제가 발생하지 않는 경우
당신은 당신의 태그를 덤프
$ git show-ref --tags > tag_refs-20141126.txt
를 사용할 수 있으며,이 파일에에 ID를 커밋합니다. 그런 다음이 파일을 저장소로 커밋하거나 다른 위치에 보관하십시오. 이 후에는, 백업에 태그를두고 작업하고있는 한에서 삭제, 태그를
$ git for-each-ref --format="%(refname)" refs/tags | cut -c11- | \
while read tag; do git tag -d $tag; done
을 삭제하고 나중에
$ cat tag_refs-20141126.txt | while read commitid tagref; do echo $tagref $commitid; done \
| cut -c11- | while read tagname commitid; do git tag $tagname $commitid; done
태그를 보관 해 두었다가 s 태그. 또한 기본 클론이 페치를 수행하는 것을 방지합니다. 당신이 'HIDE'로 시작하는 모든 태그를 보관할 가정의 기원에
(베어의 repo) :
mkdir refs/archive
mv refs/tags/HIDE* refs/archive/
지금
git tag
가 더 이상이 심판을 표시하지 않습니다, 그러나 그들은 여전히 저장소에 존재합니다.
나중에 해당 지역의 복제에 보관 된 태그를 풀다운하려면 실행할 수있는 다음
git for-each-ref refs/archive
이름에는 특별한 것이 없습니다. 'archive'는 원하는 경우 다른 이름으로 지정할 수 있습니다. – Zitrax
그들의 커밋이 가비지 수집되지 않을까요? –
@DanFabulich 아니요, 커밋은 태그로 참조되지 않고 계속 참조됩니다. 베어 리의 저장소에서'git show-ref'를 실행하면 아카이브 레퍼런스 (또는 내가 답변에서 언급 한 각각의 버전)를 볼 수 있습니다. 모든 것을 강제로 확인하여 확인할 수 있습니다. 자세한 내용은 [이 답변] (http://stackoverflow.com/a/14729486/11722)을 참조하십시오. 단, 해당 cmd를 실행하기 전에 경고를 읽으십시오. – Zitrax
- 1. git flow를 사용하면 어떻게 이전 버전으로 되돌릴 수 있습니까?
- 2. 단어로 어떻게 문서를 보관할 수 있습니까?
- 3. Mercurial : 물건을 로컬에서만 어떻게 보관할 수 있습니까?
- 4. Android Fragments - 어떻게 데이터를 보관할 수 있습니까?
- 5. git 설명을 사용할 때 주어진 태그를 어떻게 바꿀 수 있습니까?
- 6. git 태그를 다시 사용할 수 있습니까?
- 7. 함께 링크 된 데이터베이스에 레코드를 어떻게 쉽게 보관할 수 있습니까?
- 8. SVN 브랜칭 - 어떻게 분기 된 파일 만 보관할 수 있습니까?
- 9. 이 반응 형 디자인을 어떻게 보관할 수 있습니까?
- 10. Petrel 용 Ocean에서 arg 팩을 어떻게 보관할 수 있습니까?
- 11. knitr은 어떻게 경고 메시지를 상자 안에 보관할 수 있습니까?
- 12. 릴리스를 푸시 한 후에 이전 git 플로우 태그를 푸시 수 있습니까?
- 13. CVS의 GIT 이전 기록
- 14. wercker에서만 git 태그를 빌드하십시오.
- 15. GIT 태그를 잠글 수있는 방법이 있습니까?
- 16. RavenDB는 문서를 파일 시스템에 보관할 수 있습니까?
- 17. json 데이터 소스에 이미지를 보관할 수 있습니까?
- 18. 신용 카드를 안전하게 보관할 수 있습니까?
- 19. kramdown의 단락 내에 목록을 보관할 수 있습니까?
- 20. 어떻게 내 앵커 태그를 만들 수 있습니까?
- 21. 모든 형제 태그를 어떻게 얻을 수 있습니까?
- 22. BlogML에서 태그를 어떻게 표현할 수 있습니까?
- 23. 어떻게 A 태그를 선택 할 수 있습니까?
- 24. opentbs 어떻게 태그를 업데이트 할 수 있습니까?
- 25. Struts 2의 태그를 어떻게 사용할 수 있습니까?
- 26. NFC 태그를 어떻게 안드로이드에서 읽을 수 있습니까?
- 27. 어떻게 자식 태그를 자식으로 이동할 수 있습니까
- 28. 제품을 보관할 수 없습니다
- 29. 이전 Git 커밋에서 .gitconfig를 찾을 수 없습니다.
- 30. git 태그를 통해서만 bower 버전 관리를 관리 할 수 있습니까?
이 질문은 HTTP 유사합니다
이제 사용하여 나열 할 수 있습니다 : //stackoverflow.com/questions/1307114/how-can-i-archive-git-branches하지만 내 질문은 지점 대신 태그에 관한 것입니다. (태그를 태그로 변환하여 보관합니다.하지만 태그를 보관하는 방법은 무엇입니까?) –
repo를 복제하고 백업에 태그를 남긴 다음 작업중인 태그에서 태그를 삭제하십시오. –