2월 10, 2024

[Github] Pull Request 이후 Merge된 Branch 자동으로 삭제 설정하기, protected branch 설정하기

 이전 포스팅에서는 Git Branch 전략의 종류를 알아보았다. (https://www.programmingstory.com/2024/02/git-git-flow-github-flow-gitlab-flow.html)


특히나 새로운 기능을 개발할 때 feature/ ~ 이런 식으로 branch 이름을 명명한다. 이슈를 만들고 feature/#이슈번호와 같이 브랜치를 새로 만드는데 issue가 해결되고 close 되면서, Pull Request도 머지되면 해당 branch를 삭제하는 것이 통상적이다. 신규 기능들을 개발하고 브랜치를 삭제하지 않으면 너무 많은 브랜치가 있어서 복잡하기 때문에 관리 차원에서도 개발 완료 후 merge 된 브랜치는 삭제하는 것이 통상적이다. 또한 다시 해당 브랜치를 사용하는 일이 생기더라도 branch를 restore하고 이전 commit으로 돌아갈 수 있기 때문에 삭제하더라도 문제될 일은 없다. 


Confirm merge 버튼 이후에 브랜치 삭제 버튼이 뜨는데 만약 매번 모든 Pull request에 대해 delete를 수작업으로 진행하고 싶지 않다고 한다면 Github의 setting을 통해 자동 삭제를 설정해줄 수 있다. 



Settings에 들어가서 Pull Requests가 보일 때까지 스크롤을 내려준다. 



스크롤을 내리다 보면 "Automatically delete head branches" 라는 문구가 보일 것이다. 만약 merge 된 후에 자동으로 해당 branch를 삭제하게 세팅하고 싶다면 해당 문구에 체크를 해주면 된다. 


이렇게 세팅을 해주면 Confirm merge를 통해 merge까지만 완료가 되면 해당 브랜치가 자동으로 삭제된다. 

하지만 만약 특정 브랜치는 merge가 되어도 삭제되지 않게 설정하고 싶다면 어떻게 하면 될까? branch는 protected로 설정되어 있지 않으면 위 설정을 통해 모두 삭제가 되므로 자동 삭제되게 하고 싶지 않은 branch들을 protected로 만들어주면 된다. 



Protected branch 설정은 Settigns > Code and automation > Branches > Add branch protection rule을 통해 설정할 수 있다.