[Git] Git과 Github

min 🎸·2025년 1월 3일

Git 이란?

Git은 분산 버전 관리 시스템으로 소프트웨어 개발에서 소스 코드의 변경사항을 추적하고 여러 사용자 간의 작업을 조율하는 데 사용된다.

Git의 기능

1. 분산/버전 관리 시스템

  • 한 시점에서 여러 버전으로 분산 가능하다.
  • 파일의 변경 이력을 기록하고, 필요한 경우 이전 버전으로 되돌릴 수 있다.

2. 브랜치

  • 개발의 다양한 단계나 기능을 분리하여 관리할 수 있다.
  • 이를 통해 여러 기능을 동시에 개발하고 통합하는 것이 용이하다.

3. 협업

  • 여러 개발자가 동일한 프로젝트에서 병렬로 작업할 수 있게 지원한다.

4. 로컬 저장소를 기반으로 작동(인터넷 필요 없음)

  • 로컬 컴퓨터에서 명령어(git init, git commit, git push 등)를 사용하여 작동된다.

  • add - 개발한 내용을 staging area 에 올리는 작업
  • commit - staging area → local repository 로 저장
  • push - Remote Repo로 올리는 작업. (깃허브에 내 코드를 올리는 것)
  • fetch - Remote Repo로부터 필요한 파일을 Local Repo로 받음(변경 내역)
  • merge - Local Repo의 변경 사항을 Project에 직접 합치면서 반영하는 작업 (충돌이 발생할 수 있으므로 주의해야한다 !)
  • merge + patch = pull → 깃허브에 반영된 코드를 내 코드에 가져오는 작업

  1. 기본 상황
    커밋 → 풀 → 푸쉬

  2. 충돌 상황 (풀 또는 푸쉬 안될 때)
    커밋 → 패치 → 수동 머지 → 커밋 → 푸쉬

  3. 협업 시 (풀 안했을 때)
    풀 → 개발 → 커밋 → (푸쉬 전에 풀 습관화) 푸쉬



Github 란?

Github는 웹 기반의 호스팅 서비스로, Git 버전 관리 시스템을 사용한다.
주로 소프트웨어 개발 프로젝트의 협업을 위한 중앙 저장소 역할을 한다.

git과 github는 서로 다른 개념이지만, 연관되어 사용된다.


Github의 기능

1. 원격 저장소 관리(클라우드 기반).

2. 협업 도구 제공(이슈, 풀 리퀘스트, 코드 리뷰).

3. 웹 인터페이스를 통한 시각화 및 관리.

4. CI/CD 연동, 프로젝트 관리 등 다양한 부가 기능.


Github 협업시 필요한 용어

1. 이슈(issue)

프로젝트를 진행하면서 발생하는 다양한 이벤트들을 의미한다. 발견된 버그나 추가할 기능, 개발해야 할 새로운 이슈나 설계사항들을 이슈로 만들어서 동료들과 협업을 진행할 수 있다.

2. 담당자(Assignee)

해당 이슈를 담당하는 담당자를 명시할 수 있다.

3. 레이블(Label)

다양한 종류의 이슈가 생성되어 이슈 탭에 섞인다. 각 이슈가 어떤 종류인지 구별하기 위해 레이블을 사용할 수 있다. 특정 라벨이 붙은 이슈만 따로 검색할 수 도 있다.

4. 마일스톤(milestones)

깃허브 마일스톤은 스프린트 개발 방법론을 지원하기 위한 기능이다. 개발 목표를 마일스톤으로 만들어두고, 관련된 이슈들을 생성한다. 마일스톤은 엮여 있는 이슈들의 Open, Close 상태를 추적하여 전체 이슈 중 몇 개의 이슈가 Close 되었는지를 추적해서 마일스톤의 진척상황으로 퍼센트로 보여준다.

5. 프로젝트(Projects)

작업 현황과 진행도를 볼 수 있는 메뉴이다. 이슈, PR 들을 하나의 작업으로 구분해 그 작업이 현재 어느 정도 진행되었는지 확인할 수 있다. Todo, In Progress, Done과 같은 기능을 제공해주는데 이것을 통해 프로젝트 진행상황을 한 번에 파악하기 수월하다는 장점이 있다.

0개의 댓글