사진 출처 : https://namu.wiki/w/GitHub
만약 회사에 입사를 했다. 회사의 사이트를 관리하고 있다고 가정해보자. 그리고 main 브랜치 하나가 있다고 가정해보자. 참고로 깃에는 브랜치를 여러 개 둘 수 있다. 또한, 각각의 브랜치는 서로 독립되어있다. 작업을 하다가 서로 다른 브랜치를 연관시키는 것도 가능하다.
회사의 main 브랜치에는 어떤 마법이 걸려있다. 메인 브랜치에다가 누군가 회사 리포지터리에 들어가 커밋을 하면 알아서 회사의 운영 서버에 5분 정도 안에 반영이 된다. 그러면 서버 배포에 대한 복잡한 이해없이 main 브랜치에 자동으로 반영이 되니까 편하다.
이렇게 커밋하고 나면 자동으로 반영되기에 편리하고 엄청 중요한 과정이다. 근데 회사의 서버를 관리하는 부하 직원이 마음대로 할 수 있으니 main 브랜치에 커밋할 때 룰을 만드는 것이다. 부하 직원에게 브랜치를 하나 만들게 하여 해당 브랜치에서 작업하고 상사가 작업한 내용을 확인하고 반영 허가를 주면 반영할 수 있다.
따라서 main 브랜치에는 보통 배포까지 이어지는 스크립트가 걸려 있다.