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만 안됨
블로그 메인