Git, Github 란?

강유리·2023년 4월 9일
0

Git

목록 보기
6/7
post-thumbnail

Git 이란

🔥 Git is a **[free and open source](http://git-scm.com/about/free-and-open-source)** distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
  • 분산 버전 관리 시스템(DVCS)의 일종
  • 깃은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템
  • 소스 코드를 효과적으로 관리할 수 있게 도와주는 무료 오픈 소프트웨어
  • 형상 관리 도구(Configuration Management Tool), 버전 관리 도구

깃의 목적

  • 버전 관리
  • 백업
  • 협업

Git의 기본 기능 : 이력 관리

  • Git bash
  • Github Desktop
  • SourceTree

등을 사용해 다룰 수 있다.

git flow, github flow 란?

  • GitHub flow is a lightweight, branch-based workflow
  • To follow GitHub flow, you will need a GitHub account and a repository.
    1. Create a branch

    2. Make changes

    3. Create a pull request

    4. Address review comments

    5. Merge your pull request

    6. Delete your branch

      GitHub flow - GitHub Docs

  • Git-flow에 존재하는 5가지 종류의 브랜치 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)
    1. master : 제품으로 출시될 수 있는 브랜치
    2. develop : 다음 출시 버전을 개발하는 브랜치
    3. feature : 기능을 개발하는 브랜치
    4. release : 이번 출시 버전을 준비하는 브랜치
    5. hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

git flow를 가장 잘 표현한 그림

git flow를 가장 잘 표현한 그림

.gitignore 파일이란?

  • git이 관리하지 않을 파일들을 지정해두는 파일
  • .gitignore 에 원격 저장소에 commit 하고 싶지 않은 내용을 작성해두면 git에서 그 내용을 읽어 해당하는 디렉토리 또는 경로 패턴에 위치한 파일들을 버전관리에서 무시하도록 해준다.

README 파일이란?

  • Github에 프로젝트를 올릴 때, 프로젝트에 대한 설명뿐 아니라 사용 방법, LICENSE 등의 내용을 기술하는 파일
  • 사용 이유
    • 다른 사용자들이 내 오픈소스 프로젝트에 대한 정보를 얻기 위해,
    • 해당 프로젝트에 대해 함께 협업하는 동료에게 정보를 주기 위해,
    • 나중에 다시 내가 프로젝트를 다시 열었을 때 떠올리기 용이하기 위해

용어 정리

  • repository 또는 repo: 저장소 / Git으로 버전 관리하는 디렉토리를 의미
  • local repository: 로컬 저장소 / 작업자의 개발 환경(PC)에 설정된 Git 저장소
  • remote repository: 원격 저장소 / GitHub 등 외부 서버에 설정된 Git 저장소
  • commit: 커밋 / 특정 상태를 기록한 것, 즉 버전을 의미
  • branch: 브랜치 / 한국어로 번역하면 가지치기 또는 갈래라고 하는데 또 다른 작업공간을 의미
  • merge: 머지 / 한국어로 병합 또는 합치기라고 하는데 특정 브랜치에서 작업한 내용을 또 다른 브랜치에 적용하는 것을 의미
  • git status : 파일 상태 확인하기
  • git diff : 파일의 변경 내용 살펴보기. 관리되고 있는 파일과 디렉토리 목록 확인 가능
  • add : 파일을 새로 추적하기.
  • push : local repository의 파일을 remote repository로 올리는 것
  • pull : remote repository 파일을 local repository로 내려 받는 것
  • checkout : Branch 혹은 Commit 전환 (switch) / 내용 되돌리기 (restore)
  • log : Git에서 히스토리를 조회 / 저장소의 커밋 히스토리를 시간순으로 보여줌

깃 repository 내 파일의 LifeCycle

PR(Pull Request)이란?

  • Github 에서 제공하는 기능
  • 기존 Github 저장소에 보관된 cod base에서 나의 작업으로 변동된 사항을 code base에 merge를 요청하는 것
  • 코드 품질 유지를 위해 사용
  • 테스트를 진행하거나, 코멘트로 부가 설명을 하거나, 적절히 코드를 쪼개기 등 좋은 PR을 위해 노력하기


참고자료

profile
Android Developer

0개의 댓글