Git에서 오래된 커밋을 태그하는 방법은?
우리는 git에 처음이라 저장소 선두에 태그를 붙이고 싶습니다.우리의 생산 코드는 초기 저장소와 동일하지만, 그 이후로는 커밋을 하고 있습니다.선두에 태그를 붙이면, 실가동 상태를 「롤백」할 수 있습니다.
그렇다면 임의의 오래된 커밋에 태그를 추가하는 방법은 무엇일까요?
예:
git tag -a v1.2 9fceb02 -m "Message here"
어디에9fceb02
는 커밋 ID의 선두 부분입니다.
그런 다음 다음을 사용하여 태그를 푸시할 수 있습니다.git push origin v1.2
.
할수있습니다git log
현재 브랜치에 있는 모든 커밋 ID를 표시합니다.
또한 Pro Git 책에는 태그 부착에 관한 좋은 장도 있습니다.
경고:그러면 현재 날짜의 태그가 생성됩니다(이 값은 GitHub 릴리즈 페이지에 표시되는 값 등).태그의 날짜를 커밋 날짜로 하고 싶은 경우는, 다른 회답을 참조해 주세요.
코드만
# Set the HEAD to the old commit that we want to tag
git checkout 9fceb02
# temporarily set the date to the date of the HEAD commit, and add the tag
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \
git tag -a v1.2 -m"v1.2"
# push to origin
git push origin --tags
# set HEAD back to whatever you want it to be
git checkout master
세부 사항
@dkinzer에 의한 답변에 따라 날짜가 현재 날짜인 태그가 생성됩니다.git tag
커밋 날짜가 아닙니다.Git 도움말:tag
에는 다음 내용을 나타내는 "태그 백데이트 시" 섹션이 있습니다.
다른 VCS에서 일부 변경 사항을 가져온 경우 작업의 주요 릴리스에 대한 태그를 추가하려면 태그 개체 내부에 포함할 날짜를 지정할 수 있으면 유용합니다. 태그 개체의 이러한 데이터는 gitweb 인터페이스의 태그 순서에 영향을 줍니다.
향후 태그 개체에 사용할 날짜를 설정하려면 환경 변수를 설정하십시오.
GIT_COMMITTER_DATE
(가능한 값에 대해서는 나중에 설명합니다.가장 일반적인 형식은 "YYY-MM-DD HH:MM"입니다).예를 들어 다음과 같습니다.
$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1
"How to Tag in Git" 페이지는 다음을 통해 HEAD 커밋 시간을 추출할 수 있음을 보여줍니다.
git show --format=%aD | head -1
#=> Wed, 12 Feb 2014 12:36:47 -0700
특정 커밋 날짜를 다음 방법으로 추출할 수 있습니다.
GIT_COMMITTER_DATE="$(git show 9fceb02 --format=%aD | head -1)" \
git tag -a v1.2 9fceb02 -m "v1.2"
단, 커밋을 2회 반복하는 것이 아니라 HEAD를 그 커밋으로 변경하여 두 명령어 모두에서 암묵적으로 사용하는 것이 더 쉬워 보입니다.
git checkout 9fceb02
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"
가장 간단한 방법은 다음과 같습니다.
git tag v1.0.0 f4ba1fc
git push origin --tags
와 함께f4ba1fc
태그 붙이는 커밋 해시의 시작입니다.v1.0.0
태그 붙이기를 원하는 버전입니다.
네, 간단하게 다음 작업을 수행할 수 있습니다.
git tag -a <tag> <commit-hash>
태그를 추가할 경우 1.0.2를 커밋합니다.e50f795
, 간단하게 다음과 같이 합니다.
git tag -a 1.0.2 e50f795
또한 마지막에 메시지를 추가합니다.-m
, 다음과 같습니다.
git tag -a 1.0.2 e50f795 -m "my message"
이 요, 밀어서 밀어야 돼요.remote
그러기 위해서는, 다음의 조작을 실시합니다.
git push origin 1.0.2
일일이 언급하고 싶지 않은 태그가 여러 개 있는 경우 다음 작업을 수행합니다.
git push origin --tags
모든 태그를 함께 푸시합니다.
또, 스텝을 보다 명확하게 하기 위해서, 이하의 이미지에 스텝을 작성했습니다.
허브에서 태그를 추가하거나 SourceTree와 같은 툴을 사용하여 이전 단계를 회피할 수도 있습니다.이 경우 Bitbucket에 로그인하여 거기서 실행합니다.
- 브랜치로 이동하여 태그를 추가할 커밋을 찾아 클릭합니다.
- 오른쪽 커밋 페이지에서 표시된 위치를 찾습니다.
No tags
다음 을 합니다.+
표시:
- 태그 이름 상자에 태그를 추가합니다.
- 태그가 정상적으로 작성되었음을 알 수 있습니다.
이것은 오래된 질문이며, 이미 모든 답변이 유효하지만, 고려할 수 있는 새로운 옵션도 있습니다.
Git 저장소를 관리하기 위해 Source Tree를 사용하는 경우 임의의 커밋을 오른쪽 클릭하여 태그를 추가할 수 있습니다.마우스를 한 번 더 클릭하면 태그를 원본 브랜치로 직접 전송할 수도 있습니다.
으로 태그 를 실제 합니다.git checkout
:
tag="v0.1.3" commit="8f33a878" bash -c 'GIT_COMMITTER_DATE="$(git show --format=%aD $commit)" git tag -a $tag -m $tag $commit'
git push --tags origin master
서 ''는tag
의 태그 문자열로 되어 있습니다.또, 「태그 스트링」은 「태그 스트링은 「태그 스트링」입니다.commit
커밋 해시에 접속합니다.
@Progz의 답변은 훌륭하지만 Windows에서는 작동하지 않습니다.다음은 Powershell을 사용하여 오래된 커밋에 원래 날짜를 태그하는 방법입니다.
git checkout 9fceb02
$env:GIT_COMMITTER_DATE = git show --format=%aD | Select -First 1
git tag v1.2
git checkout master
특정 커밋에 태그를 붙이려면 먼저 커밋 해시를 인쇄하여 태그를 추가할 커밋을 표시합니다.
git log --oneline
출력은 다음과 같습니다.
dee93fc update App.js
c691fa2 autherization to roles
559528a modify depart
6aa4ad4 edit project page
태그를 추가할 commit id를 선택하고 commit id를 체크 아웃합니다.
git checkout 6aa4ad4
그리고 그 커밋에 태그를 추가합니다.
git tag v1.0
그리고 이 태그를 만든 후 지점으로 돌아가세요.
git checkout branchName
모든 태그를 표시하려면
git tag
언급URL : https://stackoverflow.com/questions/4404172/how-to-tag-an-older-commit-in-git
'bestsource' 카테고리의 다른 글
CMake에서 사용자 환경 변수를 가져오는 방법(Windows) (0) | 2023.04.14 |
---|---|
SQL Server의 저장 프로시저에서 텍스트 검색 (0) | 2023.04.14 |
Windows에 가장 적합한 무료 C++ 프로파일러는 무엇입니까? (0) | 2023.04.14 |
코드에서의 WPF 이미지 소스 설정 (0) | 2023.04.14 |
Groovy Shell 경고 "prefs 루트 노드를 열거나 만들 수 없습니다..." (0) | 2023.04.14 |