HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📚
위니브 책 모음(공개 링크)
/
알아서 잘 딱 깔끔하고 센스있게 정리하는 GitHub 핵심 개념
알아서 잘 딱 깔끔하고 센스있게 정리하는 GitHub 핵심 개념
/
📝
2. Git
📝

2. Git

 
1. Git이란?2. Git 설치하기2-1. Ubuntu에서 설치하기2-2. Mac에서 설치하기2-2-1. zip파일 다운받아 설치하기2-2-2. homebrew로 설치하기2-3. Windows에서 설치하기3. 버전 확인 및 초기 설정4. 저장소 만들기5. First commit!5.1. 추가하고 커밋하기(add, commit)5.1.1. git이 관리할 대상의 파일 등록하기(add)5.1.2. 버전 만들기 (commit)5.2. 상태 확인하는 방법 (status , diff , log)5.2.1. 파일 상태 확인하기 (status)5.2.2. 변경사항 확인하기 (diff)5.2.3. 커밋(commit) 히스토리 조회하기 (log)5.3. 저장소에 무시할 파일 설정하는 방법5.3.1. 무시할 파일 (gitignore) 추가 하기

1. Git이란?

  • Git은 소스코드 및 파일의 변경내역을 저장하는 분산 버전 관리 시스템 입니다.
  • 리누스 토발즈에 의해 처음 만들어졌습니다. 리눅스 커널을 만드신 분이십니다.
  • GitHub, Bitbucket, Gitlab 등의 Git 기반 버전 관리 호스팅 서비스들이 있습니다.
  • <추천 서적>
    • (무료, 공식) ProGit
    • (유료) 팀 개발을 위한 Git, GitHub 시작하기
  • <추천 강의>
    • (무료) 지옥에서 온 깃
    • (유료) 팀 개발을 위한 Git, GitHub 입문
    • (유료, 심화) 제대로 파는 Git & GitHub - by 얄코
  • 공식문서
    • Reference
      Quick reference guides: GitHub Cheat Sheet | Visual Git Cheat Sheet
      Reference
      https://git-scm.com/docs
      Reference
  • help 명령어
    • git help -a : 상세히 명령어들 살펴보기 git 명령어 -h : 명령어 옵션 보기 git help 명령어 : web에서 해당 명령어 상세보기
  • git에 기본 에디터 변경
    • git config --global core.editor "editor이름" git config --global core.editor "code --wait" #VSC를 기본 에디터로 설정, wait을 해주어야 잠시 멈추었다가 VSC에 열린 code 수정 창을 닫으면 CLI가 지속 실행되는 프로세스로 진행됩니다.
  • git에 기본 설정 변경
    • git config global -e #global 설정입니다. 만지실 때 유의해주세요.
  • 명령어 연습 사이트
    • GitExplorer
      GitExplorer: Find the right git commands you need without digging through the web
      GitExplorer
      https://gitexplorer.com/
      GitExplorer
      Learn Git Branching
      An interactive Git visualization tool to educate and challenge!
      https://learngitbranching.js.org/
      Learn Git Branching

2. Git 설치하기

2-1. Ubuntu에서 설치하기

아래 명령어를 입력하여 Git을 설치할 수 있습니다.
$ sudo apt-get update $ sudo apt-get install git
 

2-2. Mac에서 설치하기

Mac에는 기본적으로 Git이 설치되어 있습니다. 버전에 따라 설치가 안되어 있는 경우도 있습니다. 설치가 되었는지 확인하기 위해서는 터미널 창(cmd + spacebar → terminal)에 아래의 명령어를 입력합니다.
git usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] ...
 

2-2-1. zip파일 다운받아 설치하기

설치가 되지 않은 경우나 최신버전의 git을 설치하고 싶은 경우 아래의 순서대로 진행합니다.
  1. https://git-scm.com/ 접속합니다.
  1. Download for Mac 버튼을 클릭합니다.
  1. 다운 받은 파일을 실행합니다.
 
  • 맥북 사용하시는 분들 중 missing xcrun 오류 뜨시면 아래 글 참고해주세요!
    • Mac 업그레이드 후 xcrun: error: invalid active developer path 에러 해결하기
      MacOS 업그레이드 시 어김없이 발생하는 문제가 하나 있습니다 😫 바로 개발 관련 도구 사용 시 대다수가 발생하는 missing xcrun 에러인데요.
      Mac 업그레이드 후 xcrun: error: invalid active developer path 에러 해결하기
      https://www.hahwul.com/2019/11/18/how-to-fix-xcrun-error-after-macos-update/
      Mac 업그레이드 후 xcrun: error: invalid active developer path 에러 해결하기
 

2-2-2. homebrew로 설치하기

💡
homebrew로 git 설치하기
 

2-3. Windows에서 설치하기

  1. https://git-scm.com/ 접속합니다.
  1. Download for Windows 버튼을 클릭하면 아래와 같은 페이지가 열리는데 Click here to download를 눌러주세요. Portable은 무설치 버전입니다.
    1. notion image
  1. 다운 받은 파일을 실행합니다. (설치 옵션 중 기본 브랜치를 main으로 바꾸는 옵션이 있습니다. 이미 Git을 어느정도 숙지하신 분이라면 아래 것을 클릭해서 진행해주세요. 수업은 모든 옵션을 변경하지 않고 그대로 진행합니다.)
      • git config --global init.defaultbBranch main으로 추후 변경 가능합니다.
      notion image
      notion image

3. 버전 확인 및 초기 설정

다운 받은 Git 버전을 확인할 수 있습니다.
$ git --version git version 2.37.3
 
Git을 사용하기 위해 사용자 정보를 설정합니다. 설정을 제대로 했는지 확인하기 위해서 list 명령어를 사용할 수 있습니다. (get 명령어를 사용하셔도 됩니다.)
🧐
해당 절차를 진행하지 않으면 뒤에 push 가 안될 수 있습니다.
$ git config --global user.name "hojun.lee" $ git config --global user.email email@example.com $ git config --list
$ git config --get user.name $ git config --get user.email
이때, email 설정과 username 설정을 제대로 안해주시면 커밋내역에서 계정 이름이 아닌 유저이름이 올라갈 수도 있습니다.
notion image
  • GitHub을 먼저 가입하셨다면 GitHub에 있는 주소로 하세요. 이 챕터에서 GitHub에 가입하시지 않으셨어도 진행하는데 무리가 없습니다. 여러분 이름과 이메일을 입력해주세요. 이는 협업할 때 누가 작업했는지를 나타냅니다.
    • notion image
 
  • VSC에서 사용하실 것이라면 Ctrl + Shift + P를 눌러 Terminal: Select Default Profile을 git bash로 변경해주세요.
    • notion image

4. 저장소 만들기

  • 작업할 디렉토리를 만들고(mkdir) 생성한 디렉토리로 이동하기(cd)
    • $ mkdir git-test $ cd git-test
 
  • 현재 디렉토리를 Git 저장소로 만들어 원하는 디렉토리를 기준으로 버전관리를 합니다.
    • $ git init
       
      git init 을 입력하면 해당 폴더 기준으로 .git(로컬 저장소)가 생성됩니다. 로컬 저장소에는 버전 정보, 원격 저장소 주소가 저장됩니다.
      notion image
      💡
      이때, 한 폴더에는 하나의 .git(로컬 저장소)을 가져야 합니다. 그렇지 않을 경우 충돌이 발생할 수 있습니다.

5. First commit!

5.1. 추가하고 커밋하기(add, commit)

  • 파일을 생성(touch), 추가(add)하고 커밋(commit)하기
    • 아래 코드를 입력 및 실행하고, 이어 설명하도록 하겠습니다.
$ touch README.md $ git status # Untracked 확인 $ git add README.md $ git commit -m "first commit"

5.1.1. git이 관리할 대상의 파일 등록하기(add)

변경한 파일 목록 중 스테이지에 올리기 원하는 파일만 선택합니다. 파일 전체를 올리고 싶은 경우에는 git add 뒤에 .을 입력합니다(git add .). 이 때, 스페이스 바가 한 칸 들어간 다는 점을 잊지마세요!
$ git add README.md // 지정 파일 올리기 $ git add . // 파일 전체 올리기
notion image
💡
Untracked → Unmodified → Modefied → Staged |—————— git add ———————→| | ←——— git commit ——| (각각 상태에 대한 상세 설명은 5.2 챕터에 있습니다.)

5.1.2. 버전 만들기 (commit)

$ git commit -m "저장 메세지를 입력해주세요"
notion image

5.2. 상태 확인하는 방법 (status , diff , log)

5.2.1. 파일 상태 확인하기 (status)

$ git status
notion image
 
파일의 상태에 따라 Untracked 와 Tracked 로 분류됩니다.
1) Untracked(관리 대상이 아님) : 파일 생성 후 한번도 git add하지 않은 상태를 말합니다.
2) Tracked(관리 대상임) : git이 관리하는 파일임을 의미합니다.
  • Unmodified : 최근의 커밋과 비교했을 때 바뀐 내용이 없는 상태
  • Modified : 최근 커밋과 비교했을 때 바뀐 내용이 있는 상태
  • Staged : 파일이 수정되고 나서 스테이지 공간에 올라와 있는 상태이며, git add 후의 상태
 
아래의 그림을 통해 로컬 저장소와 원격 저장소 사이의 파일 이동 경로 및 상태를 확인하고 어떤 명령어가 사용되는지 살펴보세요!
알잘딱깔센 github
알잘딱깔센 github
 

5.2.2. 변경사항 확인하기 (diff)

add하기 전 최근 commit한 내용과 현재 폴더의 변경 사항을 확인할 수 있습니다.
$ git diff
notion image
 

5.2.3. 커밋(commit) 히스토리 조회하기 (log)

$ git log
notion image
위와 같이 git log 명령어를 입력하면, 최근 커밋한 히스토리를 확인할 수 있습니다. 이 log 명령어에 대한 더 자세한 내용은 부록의 ‘GitHub log 옵션’ 에서 살펴보겠습니다.
로그가 길 경우 q를 누르시면 밖으로 빠져나옵니다. j위, k는 아래로 이동할 수 있습니다.

5.3. 저장소에 무시할 파일 설정하는 방법

5.3.1. 무시할 파일 (gitignore) 추가 하기

1) .gitignore 사용하기
push 전 .gitignore 파일에 버전 관리에서 제외할 파일을 추가합니다.
# a comment - 이 줄은 무시한다. # 확장자가 .a인 파일 무시 *.a # 윗 줄에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않는다. !lib.a # 루트 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않는다. /TODO # build/ 디렉토리에 있는 모든 파일은 무시한다. build/ # `doc/notes.txt`같은 파일은 무시하고 doc/server/arch.txt같은 파일은 무시하지 않는다. doc/*.txt # `doc` 디렉토리 아래의 모든 .txt 파일을 무시한다. doc/**/*.txt
 
2) .gitignore 자동 생성기 활용하기
.gitignore 파일을 직접 생성해야 하는 경우가 종종 있습니다. 이 때, 라이브러리와 프레임워크를 사용하는 경우에는 어떤 파일을 깃 버전 관리에서 제외 시켜야 하는지(.gitignore파일에 넣어야 되는지) 헷갈리는 경우가 있죠. 혹은 일일이 작성하기 번거로운 경우도 있습니다. 이럴 때 편하게 사용할 수 있는 툴인 gitingnore.io 를 활용해보세요!
gitignore.io
Create useful .gitignore files for your project by selecting from 535 Operating System, IDE, and Programming Language .gitignore templates
gitignore.io
https://www.toptal.com/developers/gitignore
gitignore.io
  • .gitignore 사용 방법
    • 1) 위 링크에 접속 후 본인의 프로젝트에서 사용하는 운영체제, 개발 환경, 기술 스택을 작성합니다.
      notion image
      2) 생성 버튼을 눌러 내용을 생성한 후, 전체 내용을 복사하고 .gitignore 파일에 추가합니다.
      gitignore.io에서 node 스택으로 생성한 파일
      gitignore.io에서 node 스택으로 생성한 파일