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

+ Recent posts