GDSC Sookmyung 활동/Speaker Session & Hands on Workshop

[Git/GitHub Session] Git, GitHub 시작하기

siraegi 2021. 3. 27. 21:58

이 글은 20.09.30 ~ 20.10.04 DSC Sookmyung Git,GitHub Mission 이후
2020.10.05 에 진행된 코어멤버 하연, 나현님의 'Git,GitHub 시작하기' 세션을 바탕으로 작성된 블로그 포스팅입니다.

새 창에서 열기 (발표자 노트를 참고하실 수 있습니다)

 

Git, GitHub 시작하기

  1. Git 이란?
  2. Git 의 구조
  3. 혼자 써보는 Git, GitHub
  4. 협업하며 쓰는 Git, GitHub
  5. GitHub 의 유용한 서비스

1. Git 이란?

    : Distributed Version Control System

  Git은 분산 버전 관리 소프트웨어입니다. GitHub는 Git을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스입니다. 즉, GitHub는 Git의 원격저장소를 만들고 관리할 수 있도록 해주는 많은 서비스 중 대중적으로 쓰이는 서비스입니다.

  • Version Control (버전관리) : 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템. 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정내용 비교 가능, 누가 문제를 일으켰는지 추적 가능, 누가 언제 만들어낸 이슈인지 파악 가능, 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구 가능.
  • Git은 주로 소프트웨어의 버전관리를 위한 툴

2. Git 의 구조

파일의 상태로 알아보는 Git의 구조

로컬저장소(작업하는 내 컴퓨터)에서 Git을 간단하게 보면 이런 구조입니다.

  • Working Directory : 쉽게 말해 내가 작업하는 공간
  • Repository : Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳(.git 폴더)
  • Commit : 어떤 순간의 작업공간, Working Directory의 상태를 저장한 것. 'commit 한다'='working directory의 모든 파일과 파일의 데이터를 사진 찍듯이 스냅샷을 찍어 저장소에 저장하기'

파일의 상태로 알아보는 Git의 구조

Staging Area가 중간에 있어서 Working Directory 안에 있는 커밋이 필요 없는 파일들을 포함하지 않도록 할 수 있고, 변경사항 중 일부만 스테이징해서 커밋할 수 있습니다.

3. 혼자 써보는 Git, GitHub

  • git 저장소 만들기 : git init 
  • working directory 상태 확인 : git status
  • 파일 staging : git add [파일명]
  • 한 줄로 commit : git commit -m “[커밋메시지]”
  • 변경사항 비교하기 : git diff
  • 커밋 로그 확인하기 : git log
  • GitHub에 원격 repository 생성하기
  • 원격저장소 연결하기 : git remote add [원격저장소명] [원격저장소주소]
  • 연결된 원격저장소 설정 보기 : git remote -v
  • 원격저장소에 푸시하기(최초) : git push [원격저장소명] [브랜치명]
  • 브랜치 만들기 : git branch [브랜치명]
  • 브랜치로 이동하기 : git checkout [브랜치명]
  • 원격저장소에 브랜치 푸시 : git push --set-upstream [원격저장소명] [브랜치명]
  • 브랜치 merge : git merge [브랜치명]
  • 로그 기록 그래프로 확인하기 : git log --graph

4. 협업하며 쓰는 Git, GitHub

    Pull Request 는 내가 변경한 내용에 대해 같이 개발하는 사람들에게 알려주고 코드를 리뷰받고 main 브랜치에 merge 해도 되는지 묻는 것이라고 볼 수 있습니다. 저장소를 로컬에서 브랜치 따서 파일을 변경하고 커밋하면 GitHub 웹에서 Pull Request 하라는 노란 팝업이 뜹니다.

5. GitHub 의 유용한 서비스

Project

GitHub 에는 프로젝트를 관리하는데 유용한 서비스가 있습니다. 개발을 할 떄, 특히 여러 명이서 개발을 할 때는 프로젝트를 관리하는 문서나 보드가 필요한데요. GitHub 에서는 project 탭에서 이런 기능을 제공합니다. issue 관리, 일정 관리, 코드리뷰, 버그 리포트 등을 할 수 있습니다.