Search

Git tag command, related process

OO님 Git Tag를 활용해볼까요?

태그 명령어

로컬 list
git tag --list
로컬 create
git tag {{version}}
로컬 delete
git tag -d {{tag_name}}
원격 tag list 확인
git ls-remote --tags
원격 올리기
git push origin {{tag-name}}
↓ 모든 태그 한번에 푸시   지양 할것 
git push origin main --tags:
== git push --tags
원격 삭제
git push origin :{{tag-name}}

프로세스

Local-Remote branch Update

# tag 최신화 git remote update
Shell
복사

Local develop 최신화

git pull --rebase origin develop
Shell
복사

feature 브랜치 생성 및 이동

# on develop git checkout -b {{branch-name}} or # switch(설명링크): git version 2.3부터 추가 됨, 브랜치 이동 전용 명령어 git switch -c {{branch-name}}
Shell
복사

add 및 commit

# stage git add {{file or .}} # commit git commit -m "{{commit message}}" or git commit or # if commitizen installed, # commitizen(링크): 커밋을 일정 양식으로 작성할 수 있도록 돕는 툴 cz c
Shell
복사

develop rebase

git pull --rebase origin {{develop-branch-name}}
Shell
복사
if conflict, resolve it.

push to remote

git push origin {{branch-name}}
Shell
복사

Pull Request 생성

develop ← feature
rebase & commit
(develop rebase)를 위에서 했지만, 다시
만약 confilct 발생하면,
로컬에서 develop rebase 를 다시 하고 진행
PR 완료

Local Develop 최신화

# on feature/some-feature git checkout develop or git switch develop git remote update git pull --rebase origin {{develop-branch-name}}
Shell
복사

Tag 달기

git tag {{develop-tag-name}}
Shell
복사

Tag Remote 올리기

git tag push {{develop-tag-name}}
Shell
복사

Github GUI 사용 Tag달기

브랜치 혹은 Commit에 tag 생성할 수 있음,
그러나 Release를 생성하면서 생성하는 것이기 때문에 생략함
주의
1.
태깅은 신중하게, 삭제가 되긴 하지만 Tag 기반으로 돌아가는 작업이 존재할 수 있음
2.
remote branch 를 Pull 하더라고 Tag는 업데이트 안됨
Tag 생성 전, git remote update 필수
3.
remote로 branch push 해도 Tag는 올라가지 않는다.
Tag 생성 후, git push origin {{tag-name}} 진행해야함
4.
Local, Remote에 동일하게 존재하는(그러나 서로 다른 커밋) tag-name Remote에서 업데이트해도 로컬에 업데이트 되지 않는다.
tag push 할때 충돌 난다

Tag 관련 실험

브랜치 push 할때 따라 올라가는지
안 올라감
브랜치 pull 할때 따라 내려오는지
안 내려옴
Remote 존재하는 tag 다시 push하기
To https://github.com/~~~/~~~ ! [rejected] tag-test-999 -> tag-test-999 (already exists) error: failed to push some refs to 'https://github.com/~~~/~~~' hint: Updates were rejected because the tag already exists in the remote.
Shell
복사
Local 존재하는 tag-name Remote에서 댕겨오기
local tag 변경 없음, push만 안됨