Git, Github 기본 용어 정리

Git이란?

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. Latest source Release 2.47.0 Release Notes (2024-10-06) Download Source Code GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but ther

git-scm.com

 

분산환경을 지원하는 소스 버전 컨트롤 시스템

CVS, SVN (중앙 개발) 에 비해 오프라인 환경에서도 작업이 가능

 

리눅스를 만든 Linux Torvalds가 개발

 

다수의 개발자가 공동으로 개발 가능

코드 리뷰, 코드 백업, 롤백 기능이 있음

코드 변경이 기록

코드의 스냅샷(버전) 버전간 이동 가능 안정적이었던 버전으로 이동가능

 

클라우드 버전 사용 GitHub, BitBucker, GitLab 등등 

 

Github 이란?

 

GitHub · Build and ship software on a single, collaborative platform

Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.

github.com

 

GitHub은 Git repo 호스팅/ 클라우드 서비스

Git은 CLI 툴, Github은 웹기반 인터페이스 제공

repo를 public이나 private로 구분 가능

 

다양한 기능 제공

- Code 개발 생산성 증대를 위한 Copilot

- CI/CD등의 다양한 연동을 위한 Workflows 제공

- 문서화를 위한 Wikis

- 버그리포트와 트랙킹을 위한 Issues 기능을 제공

 

Git 기본 용어 정리

Repo Repository의 줄임말, Git으로 관리되는 소프트웨어 프로젝트를 지칭 

- local repo 로컬 리포(Git Client)

- remote repo 중앙 원격 저장소(Git Server)

Master/ Main 한 Repo에서 기본이 되는 메인 코드를 지칭, Git에서는 master, GitHub에서는 main

Branch Master 혹은 Main의 카피본, 새로운 기능 개발이나 다른 branch로 부터 만든 작업본, 작업 후 나중에 원본 Branch와 병합하여 사용

Clone 다른 계정에 존재하는 repo로부터 새로운 local repository를 만드는 것

Commit (Chek-in) 코드변경을 Branch의 Local Repository에 반영

Pull (개발자 입장에서) remote repo로 부터 마지막 pull 이후 변경된 것을 다시 가져오는 작업. main branch와 씽크

Push (개발자 입장에서) 작업중인 로컬 복사본에서 서버(remote repo)로 변경사항 복사

Merge pull이나 push 할경우 발생하는 충돌(conflict)를 해결하는 과정

 

 

엔지니어링 관점에서 생각해보면! 

main/master(특정 브랜치를 기준으로)에 언제 변화가 생기는지 CI/CD 트리거 가능

push나 merge 시점이 CI/CD 를 실행하기 위한 절호의 순간!

Github에서는 Actions라는 기능을 통해 Workflow라는 이름으로 구현