본 글은 Bryant Son 님의 "GitHub를 통해서 배워보는 기업용 파일 버전관리, 데브옵스 (DevOps)" 를 듣고 정리한 포스트입니다.
주 | 날짜/시간 | 강의 내용 |
---|---|---|
첫째주 | 2022.06.07 | GitHub 적용 - 기본: Branching, Pull Request, Merge, 리뷰, 양방향 커밋, atomic 커밋 |
둘째주 | 2022.06.14 | GitHub 적용 - Advanced: Git Bisect, Git Alias, Git LFS, Git Revert, Git Tag/Releases, Git Reset, Git Cherry Picking |
셋째주 | 2022.06.21 | 데브옵스 입문 & 적용: 데브옵스의 개념 그리고 정의, Docker, HTML, CSS, Javascript NodeJs 를 사용한 웹 개발 |
넷째주 | 2022.06.28 | 데브옵스 적용 - 인프라 데브옵스: Terraform, Azure, GitHub Action 를 사용한 인프라 데브옵스 |
다섯째주 | 2022.07.05 | 데브옵스 적용 - 앱 개발 데브옵스: GitHub Action, GitHub Package, Azure 를 사용한 앱 개발 데브옵스 |
데모데이 | 2022.07.12 |
깃허브에서 파일을 저장하고 다양한 협업 기능을 제공하는 공간
Activity: Repository
HTML, XML 같은 메타 텍스트 파일. 깃허브는 이 파일 포멧으로 다양한 문서 작업이 가능.
마크다운 포맷으로 되어 있는 가장 기본적인 깃허브 파일.
Activity: Markdown
제일 앞 .
으로 알 수 있듯, 컴퓨터에선 숨겨진 파일이지만 깃허브 레포에선 보여지며 패턴에 매치되는 파일/디렉토리는 깃허브 레포에 올려지는 걸 방지할 수 있습니다.
GitHub에서 인식하는 특별한 목적의 디렉토리이며 깃허브 액션. CODEOWNERS 등 다양한 설정 관련 파일들이 들어갈 수 있습니다.
CODE_OF_CONDUCT.md
: 올바른 행동/관리에 대한 설명CONTRIBUTING.md
: 프로젝트에 기여할 수 있는 방식을 설명FUNDING.yml
: 스폰서/도네이션 받는 오픈소스 프로젝트에 유용ISSUE_TEMPLATE
: 깃허브 이슈를 일정한 포맷으로 만들어 줄 수 있는 Template을 저장하는 디렉토리PULL_REQUEST_TEMPLATE.md
: Pull Request를 일정한 포맷으로 만들어 줄 수 있는 Template을 저장하는 디렉토리stale.yml
: GitHub Probot 관련 설정 파일SECURITY.md
: 보안 관련 정보를 설명하는 파일workflows
: 깃허브 액션 파일을 저장하고 인식하는 디렉토리CODEOWNERS
: Pull Request를 할 때 자동으로 Reviewer를 더할 수 있는 특별 파일dependabot.yml
: Dependabot을 사용해서 의존성 관련 스캔 해주는 파일Activity: 개인 깃허브 리포 파일 추가 + 업데이트
다른 브랜치에게 영향을 안 주는 독립적인 워크스페이스/공간 개념
브랜치는 저장이 될 때 카피가 아니라 포인터 식으로 레퍼런스를 주는 개념
파일을 변경한 후 commit을 합니다.
Pull Request의 시작은 완벽하지 않아도 됩니다. 계속 이야기하면서 협업하기 위한 과정
main/master
: 디폴트 브랜치. Branch Protection으로 안전하게 보호하고 직접적인 merge는 가능하지 않도록 설정development 브랜치나 다른 stage 브랜치
: DevOps 모델을 따라서 DEV. UAT. PROD 식으로 브랜치를 모델링. 예를 들어 main 브랜치는 dev나 uat 브랜치에서 다 테스팅하고 prod/release 브랜치에 안전하게 배포된 후 mergefeature-xxx
: 새로운 기능을 추가할 때 사용. 하지만 main/master 브랜치에 직접 merge는 불가능하도록 설정. JIRA같은 프로젝트 매니지먼트 태스크에 연동 가능hotfix-xxx
: Production 환경에서 중요한 에러나 버그를 고치기 위한 브랜치. feature 브랜치에 마찬가지로 JIRA 같은 프로젝트 매니지먼트 태스크에 연동 가능.main 브랜치와 feature 브랜치만 존재함
장점:
단점:
깃허브 플로우와 비슷하지만 배포를 위한 production 브랜치가 따로 있음
장점:
단점:
정해진 지속되는 브랜치가 있고 같은 main 브랜치에 merge
장점:
단점:
기업에서 가장 많이 쓰는 브랜치 모델.
main 브랜치에서 변화는 hotfix 브랜치만 가능하고 feature 브랜치는 development 브랜치로 merge
장점:
단점:
git remote -v
를 통해 origin
링크 확인 가능Step 0: 아무런 변화가 없음
working | staging | history |
---|
Step 1: 새로운 파일이 만들어 졌거나 변경
working | staging | history |
---|---|---|
new ✨ ✨ | ||
modified ✨ ✨ ✨ |
Step 2: git add 명령어를 사용해 staging
working | staging | history |
---|---|---|
✨ ✨ ✨ ✨ ✨ |
Step 3: git commit을 사용해서 커밋 함
working | staging | history |
---|---|---|
✨ ✨ ✨ ✨ ✨ |
기초에 대해 잘 공부하고 가네요.. 👍 다음 시리즈도 기대할게요!