git이란?
- 분산환경을 지원하는 버전 관리 시스템
- 여러 사용자가 협업하고 소스 코드를 추적하며 변경 사항을 기록하는 도구
- 커맨드 라인이나 GUI를 통해 파일의 이력을 관리하고 협업 프로젝트에서 효과적으로 작업할 수 있다.
- SVN/CVS은 항상 서버에 연결 돼야 사용가능+ 현저하게 느림 but 사용법은 더 복잡.
- 장점 : 다수 개발자 공동개발, 코드리뷰가능, 코드백업, 과거코드로 롤백가능
단점 : 어려워서 진입장벽이 높다 - 필요한것 : 로컬 설치할 컴퓨터, 클라우드버전(git hub)
github란?
- git repo 호스팅/ 클라우드 서비스
- 커맨드라인을 활용하는 동작 + 웹기반 인터페이스 동작도 가능
- private를 많이 만들때는 유료
- copilot,ci/cd 등 다양한 툴 제공
- 각각 개발해도 바로 중앙으로 가는게 아니고 단계를 하나씩 더 거쳐 안정적임
git 관련용어
- repo : repository 의 약자로 소프트웨어 프로젝트를 말함
- Master/Main : repo의 기본이 되는 메인 코드, 위험을 피하기 위해 가급적 직접수정하지 않는다. branch들을 수정하면서 마지막에 branch들과 합치는게 좋지만, 너무 한번에 바뀌지 않도록, 주기적으로 합쳐주는것도 중요
- Branch : 각자 작업본 나중에 이상이 없는게 확인되면, main과 합치게 된다.
- clone : 클라우드 상의 repo를, 로컬에 repo를 만들고 복제하는것
- commit(check-in) : 내가 코드 변경후 commit 하면 내 branch의 local repo에 반영됨.
- push 하면 변경사항이 서버 remote repo로 올라감
- pull은 반대로 remote repo에 저장된 변경 사항을 가져와서 로컬에 적용하는 과정
- merge는 pull , push 했을때, 두 branch간의 충돌을 해결하는 과정
push나 merge 시점이 ci/cd가 필요한 순간
- 코드가 메인이나 브랜치에 추가되는 순간 ci/cd를 트리거
- 테스트 수행하고 최종적으로 docker image를 만들도록 설정할수 있다.
- 그래서 ci/cd는 github에 구현하는 것이 자연스러움
- github의 actions를 통해 위의 workflow를 구현가능
'깃허브' 카테고리의 다른 글
github actions 기초와 실습 (0) | 2023.12.25 |
---|---|
깃허브 CI,CD 기초 (0) | 2023.12.24 |