티스토리 뷰

개요

보통 프로젝트의 규모나 성격에 따라 branch workflow를 가져가는 전략은 다양하지만 개인적으로는 git-flow 변형을 해용하고 있다. 이 경우 특정 branch (e.g. main, develop)의 경우 직접 commit이 안되도록 보호 설정을 해주면 실수를 예방할 수 있는데 GitHub에서 해당 설정을 하려면 유료계정으로 전환이 필요하다. 유료계정 저렴해서 왠만하면 하는게 전환하는게...

 

마침 VSCode v1.69.0 에서 클라이언트에서나마 보호를 걸어주는 유용한 기능이 추가되어서 간단하게 소개해본다.

 

Long-Running Branches 전략

개인 프로젝트에서 아래와 같은 long-running branch 전략을 사용중이라고 가정하자. master브랜치는 최신 배포버전이며 develop브랜치는 개발 안정화버전, topic브랜치는 기능(버그)개발을 위한 브랜치이다. 이 경우 master와 develop은 직접적인 commit은 없어야하고 (PR을 통한) merge만 수행되어야하며, 모든 commit은 topic브랜치를 통해 수행하게 된다. 항상 topic 브랜치가 history에서 앞서나가고 develop, master 순서로 따라오는 안정적이고 단순한 전략이다.

 

Branch Protection 설정

VSCode에서 "ctrl + ,"을 눌러서 설정을 아래와 같이 세팅한다.

  • git.branchProtection : master, develop 추가. 보호하고 싶은 branch명을 추가하면 된다.
  • git.branchProtectionPrompt : 취향에 따라 선택
    • alwaysPrompt : 항상 경고창으로 선택
    • alwaysCommitToNewBranch : 항상 새 bransh 생성

master, develop를 추가한 모습

테스트

이제 master나 develop에서 직접 commit을 하려고 하면 아래와 같은 경고창이 팝업된다. (alwaysPrompt 경우)

보호된 브랜치 commit 경고창

Commit to a New Branch를 눌러서 topic브랜치를 생성하자. (develop에서 기능 추가시마다 topic브랜치는 항상 신규 생성 및 merge후 삭제한다고 가정한다)

topic 브랜치 생성

작업브랜치 생성 후 리모트브랜치로 publish할건지 물어보면 확인을 통해 리모트저장소에 발행한다.

서버에도 topic브랜치가 잘 등록되었고, 해당 브랜치로 checkout 및 commit 또한 수행되어 있는것을 확인할 수 있다. 이후 PR을 통해 develop브랜치로 merge하는식으로 정상적으로 작업을 이어나갈 수 있으며, 실수로라도 master나 develop 브랜치에 직접 commit 하는 실수를 사전에 예방할 수 있다.

 

MS가 최근 VSCode, GitHub, TypeScript 등을 통해 시장 밑바닥에서 뒤쳐져있던 점유율을 끌어올리는게 느껴진다. 최근 대변혁이 이루어지고 있는 .NET까지 포함하여 다시한번 영광의 시대가 도래할런지 지켜봐도 좋을듯하다.

References

https://code.visualstudio.com/updates/v1_69#_branch-protection-indicators

 

Visual Studio Code June 2022

Learn what is new in the Visual Studio Code June 2022 Release (1.69)

code.visualstudio.com

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함