⚠️ 해당 게시글은 모던애자일 팀원이 준비한 테크톡 내용을 스크랩했습니다.
출처 : Modern-Agile 3term 이하람
삶이 온통 사람의 길이니
성장하는 즐거움을 알아가는 중입니다🌱
lami.tistory.com
Git을 알아야 하는 이유
- git은 많은 회사에서 자격요건으로 있기 때문
- git은 분산 버전 관리 시스템으로 협업을 하기 때문에 회사에서 무조건 사용
- 원티드에서 가져온 일부 회사의 자격요건과 우대사항
- 원티드에서 가져온 일부 회사의 자격요건과 우대사항
- git은 분산 버전 관리 시스템으로 협업을 하기 때문에 회사에서 무조건 사용
Git?
- 로컬에서 관리
- 분산 버전 관리 시스템(Version Control System)
- 분산 버전 관리 시스템이 없다면?
- 위 사진처럼 모든 버전에 관한 파일을 저장해야 함.
- 매우 불편하고 많은 용량을 차지함
- 분산 버전 관리 시스템이 없다면?
- 누가 무엇을 어떻게 변경했는지 기록하고 내용을 공유
Github?
- 클라우드 서비스
- git으로 관리하는 프로젝트를 올려둘 수 있는 git 호스팅 사이트
Git 구조
- 작업공간(working directory)에서
git add
- staging area에 있는 파일을
git commit
- 로컬 저장소에 git commit 됨
git push
해서 원격저장소에 push
⚠ git commit
을 한 후 git push를 하지 않는다면 카메라로 사진을 찍고 인스타그램에 올리지 않는 것과 같다.
Git Branch
- git에서 branch는 독립적인 working directory를 의미
- 현재의 버전으로 다른 버전을 만들어서 가지를 치는 것
- 여러가지 버전의 branch를 만들어 보고, 이를 합치는 방식으로 작업
git branch를 이용해 작업하는 방법
- git은 동시에 작업이 가능하기 때문에 협업 시 원격으로부터 최신 master branch를 pull
- 자신이 작업한 local branch로 이동하여 작업
- 자신의 local master branch에 2번에서 작업한 내용을 merge
- 자신이 작업한 모든 내용이 있는 local master branch를 원격 master branch에 반영
Git Flow
- git flow는 git을 활용해서 협업을 할 때 5개의 branch를 각각의 역할에 맞게 사용하는 협업기법
모던 애자일 1기에서 사용한 git flow
각 branch 설명
- master branch
- 실제로 운영, 배포되어 사용자가 사용하게 될 코드가 있는 branch
- 가능하면 직접 건드리지 않음
- hotfix branch, release branch의 코드가 master branch로 merge 됨
- feature branch
- 특정 기능을 개발하는 branch
- 보통 develop branch에서 분리되고, 기능 개발이 완료되면 develop branch로 다시 merge 됨
- develop branch
- QA 단계를 거치기 전에 배포를 위해 적용되어야 할 개발이 이루어지는 branch
- QA가 필요한 기능들은 feature branch에서 develop branch로 merge 작업을 하고 나서 QA 단계로 감
- QA 단계에 가면 develop branch 코드에서 release branch가 분리되어서 release branch에서 QA 단계 진행
- release branch
- 배포를 앞둔 단계에서 QA를 진행하는 branch
- QA 단계를 거치고, 배포 시점이 되면 release branch는 master branch와 develop branch 두 곳으로 merge 됨
- hotfix branch
- 긴급 수정 branch
- master branch, 즉 이미 운영 중인 서비스에서 긴급한 이슈가 발견되면 급하게 고치는 branch
- hotfix branch로 이동해서 수정이 되면 develop branch와 master branch로 merge 됨
Git Commit Message
- 프로젝트를 진행하면서 commit을 많이 하게 될 텐데 이때 commit message만 보고도 어떤 작업을 했는지 알 수 있도록 규칙을 정하고 일관적으로 작성해야 함
모던 애자일 1기에서 사용한 커밋 메세지 컨벤션
Github Issues
- Issue : 프로젝트를 진행하면서 발생하는 pull requests, bug, develop 등 모든 이벤트
- github에서는 Issues 기능을 통해 프로젝트에서 발생하는 모든 이슈를 관리할 수 있음
- 라벨링을 해 이슈별 주제를 구분함으로써 이슈의 양이 많더라도 관리하기 편리하게 해줌
- milestones 기능을 통해 스프린트 관리할 수 있음
모던 애자일 2기에서 사용한 Github Issues
Github Projects
- github의 projects는 다양한 이슈를 관리할 수 있는 칸반보드
- To do : 이슈들 중 해야 할 이슈들
- In Progress : 현재 진행 중인 이슈들
- Done : 완료된 이슈
모던 애자일 2기에서 사용한 Github Projects
최근댓글