수달이네 기술 블로그

2. Git, Github 개념 본문

학교공부/오픈소스SW

2. Git, Github 개념

슬픈 수달이 2026. 4. 21. 16:33

버전관리

원하는 시점(버전)으로 이동할 수 있게 하는 것

  • Save and load
  • ctrl + z

버전관리 시스템의 필요성

  • 전체 프로젝트를 전체를 저장하면 용량이 커짐
    • 매 버전마다 모든 사항을 저장하게 되기 때문.
    • 버전관리 시스템 → 변경사항만 저장해 가벼움.
  • 팀프로젝트 시 동시에 수정할 경우 어떻게 해결할지 난항
    • 각자 수정한 부분만 수정
    • 겹치는 부분은 어떻게 할지 조정 가능

Git

소스코드 버전 관리 시스템

  • 원하는 시점으로 자유롭게 이동 가능
  • 데이터 저장 공간만 있으면 어디서나 git을 사용 가능(개인 컴퓨터, usb, 클라우드 서버등)

호스팅 사이트

Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트이다.

  • Github, Gitlab, Bitbucket등

깃허브

Github에 소스코드를 올려둘 경우 전 세계 개발자와 협업할 수 있다.

  • 오픈소스 협업

깃 사용법

로컬저장소(.git 폴더)란?

  • 평범한 폴더는 명령어(git init)를 통해 폴더 안에 .git숨김 폴더를 만드렁 버전관리를 함.

  • 로컬 저장소를 생성할 폴더 선택 후, 해당 디렉토리에서 git bash실행
    • git init → initialized empty Git repository in 위치(라고 출력됨)
  • git으로 생성한 버전들의 정보와 원격저장소 주소등이 들어있는 숨김 폴더이다.
  • .git폴더를 로컬저장소라고 부르고 이 폴더에 버전관리가 가능하다.

커밋(commit)

생성하는 각 버전(체크포인트)혹은 각 버전을 통해 생성된 파일을 커밋이라고 한다.

  • git 숨김 폴더에 내 정보를 등록한다
    • git config --global user.email [이메일 주소] : 이메일 주소 설정
    • git config --glojbal user.name [유저 이름] : 유저 이름 설정

작업 폴더(Working directory)

사용자가 실제 파일을 수정하고 작업하는 공간.

버전 저장

파일 선택: 버전을 저장할 때 먼저 저장(커밋)할 파일을 선택해야 한다.(스테이징)

  • git add [커밋할파일명] : 해당 파일을 선택해준다(커밋할 파일명에 . 을 입력할 경우 수정된 모든 파일을 스테이징한다.

커밋: 커밋 명령어를 통해 저장한다.

  • git commit -m "커밋 설명" : 커밋 설명과 함께 커밋한다.
    • 커밋 설명은 파일 생성 이유, 수정 이유 등 최대한 상세한 설명을 적는 것이 나중에 원하는 버전을 찾기 편하다.

커밋 기록 확인

커밋은 히스토리로 남게 된다. 이 히스토리를 잘 보면 커밋이 잘 되었는지 확인 가능하다.

  • git log : 로그를 확인해준다.
  • commit [커밋아이디] (헤드 여부) Author: 작성자 이름<작성자 메일> Date: 커밋 날자

커밋 설명

이 모든 커밋별로 출력된다. 나가고 싶으면 q

Checkout

다른 버전(커밋)으로 되돌아가는 개념

  • git checkout [커밋아이디 앞 7자리] : 해당하는 커밋 아이디로 체크아웃된다.
    • Head is now at 커밋아이디 가 뜨면 체크아웃 성공한것.
    • 체크아웃에서 커밋하면 새로운 브랜치에서 작업한것임.
    • 가장 최근 커밋으로 이동하려면 git checkout - 로 대체 가능

원격 저장소 업로드(Push)

깃허브 협업 프로젝트를 위해 만들어둔 공용폴더

  • 웹사이트에 깃을 업로드 한것
  1. 깃허브에서 new repository기능으로 레포지토리를 생성
  2. https주소를 이용해 연결해준다 git remote add origin [https주소] : 깃허브 레포지토리와 깃 디렉토리를 연결해줌
  3. git push origin master : 깃허브에 깃 디렉토리 파일을 올려줌,

Clone

원격저장소의 코드와 버전을 로컬 컴퓨터로 내려받는 것.

  • git clone [원격저장소명] . : 현재 폴더에 깃 내용을 내려받음
    • . 이 있으면 현재 폴더에 내려받음, 없으면 레포지토리명과 같은 이름의 폴더가 생김.
    • 해당 클론 폴더에서도 푸쉬 가능하다.
  • [Download Zip]같은 방법도 있지만, 원격저장소와 버전 정보가 제외된다.

원격 저장소 다운로드(Pull)

가장 최근 커밋 업데이트가 있지만, 로컬엔 커밋이 반영 안된 경우 원격 저장소의 커밋을 갱신함

  • git pull origin master : 깃허브의 파일을 깃 디렉토리에 업데이트

실수한 경우

실수한 경우 해당 커밋을 지우는 방법도 가능하다

  • git reset --hard(or --soft) [커밋 아이디] : 해당 아이디까지 취소 가능

용어

Git: 깃, 로컬 버전관리 시스템

GitHub: 깃허브, Git으로 관리하는 프로젝트를 올려두는 사이트

GUI: Graphic User Interface: 마우스를 사용하는 방식

CLI: Commend Line Interface: 명령어를 이용하는 방식

GitBash: CLI방식으로 Git을 이용하는 환경

Commit: 커밋, 버전관리를 통해 생성된 파일,혹은 그 행위

Checkout: 체크아웃, 원하는 지점으로 파일을 되돌림

로컬저장소: Git으로 버전관리하는 숨김 폴더, .git

원격 저장소: GitHub에서 협업하는 공간(폴더)를 의미

레포지토리: 원격저장소를 의미

Push: 로컬저장소의 커밋을 원격저장소에 올림

Pull: 원격저장소의 커밋을 로컬저장소에 내려받음