Seren dev's blog
article thumbnail
이 글은 인프런의 "알잘딱깔센 GitHub" 강의를 듣고 정리한 내용입니다.

 

인프런 강의 링크

 

[무료] 30분 요약 강좌 시즌4 : 알잘딱깔센 GitHub - 인프런 | 강의

알아서! 잘! 딱! 깔끔하고! 센스있게! 정리하는 GitHub 핵심 개념 책의 무료강의입니다. 해당 책과 Notion 링크도 무료로 다운로드 받을 수 있습니다. 비영리 프로젝트로 교재활용도 허락없이 가능합

www.inflearn.com

노션 링크

 


Git이란?

 

Git - Reference

Reference

git-scm.com

  • 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.com

Git 브랜치 배우기

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

Git 설치하기

Windows에서 설치하기

https://git-scm.com/downloads 에 접속한다.

Windows를 클릭하면 아래와 같은 페이지가 열리는데 Click here to download를 클릭한다.

다운 받은 파일을 실행한다.

 

 

버전 확인 및 초기 설정

운영체제가 Windows인 경우에 맞춰서 설명하겠다.

 

git을 실행할 로컬 폴더에서 우클릭을 하고 Git Bash Here를 클릭한다.

git --version 명령어를 입력하면 다운 받은 Git 버전을 확인할 수 있다.

 

아래의 명령어는 Git을 사용하기 위해 사용자 정보를 설정하는 명령어다. 설정을 제대로 했는지 확인하기 위해서 list 명령어를 사용할 수 있다.

$ git config --global user.name "Soomin Lim"
$ git config --global user.email augustth@gmail.com
$ git config --list

user.name은 Github 아이디, user.email은 Github에 가입한 이메일로 설정하면 된다.

 

버전과 이름, 이메일을 확인하는 명령어와 실행 결과는 다음과 같다.

 

저장소 만들기 : git init

mkdir:  작업할 디렉토리를 만드는 리눅스 명령어

cd: 디렉토리를 이동하는 리눅스 명령어

git init: 현재 디렉토리를 Git 저장소로 만들어 원하는 디렉토리를 기준으로 버전관리를 한다.

git init 을 입력하면 해당 폴더 기준으로 .git(로컬 저장소)가 생성된다. 로컬 저장소에는 버전 정보, 원격 저장소 주소가 저장된다.

이때, 한 폴더에는 하나의 .git(로컬 저장소)을 가져야 한다. 그렇지 않을 경우 충돌이 발생할 수 있다.

리눅스 명령어
ls : 안에 있는 폴더, 파일을 모두 볼 수 있다.
ls -al : 안에 있는 폴더, 파일을 좀 더 상세하게 볼 수 있다.

 

First commit

커밋은 로컬저장소에 변경 내역을 올리는 것이다.

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

  • touch README.md : 파일 생성 리눅스 명령어
  • 수정하거나 생성한 파일을 로컬 리포지토리에 먼저 add를 해주어야 한다.
  • 커밋을 하면 로컬 리포지토리에 변경 사항을 저장한다.
커밋은 기능 단위
ex) 버튼을 만들었다 / 로그인 기능 구현

 

전체 명령어 실행 화면

 

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

변경한 파일 목록 중 스테이지에 올리기 원하는 파일만 선택한다. 파일 전체를 올리고 싶은 경우에는 git add 뒤에 .을 입력합니다.

stage는 커밋할 파일들이 모여있는 곳이라고 생각하면 된다.

$ git add README.md // 지정 파일 올리기
$ git add . // 파일 전체 올리기

Untracked → Unmodified → Modefied → Staged
|—————— git add —————————→|
                             | ←——— git commit ——| (각각 상태에 대한 상세 설명은 5.2 챕터에 있다.)

커밋하면 다시 unmodified 상태로 되돌아간다.

 

버전 만들기 (commit)

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

커밋 = 버전 생성

 

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

파일 상태 확인하기 (status)

파일의 상태에 따라 Untracked 와 Tracked 로 분류된다.

  1. Untracked(관리 대상이 아님) : 파일 생성 후 한번도 git add하지 않은 상태
  2. Tracked(관리 대상임) : git이 관리하는 파일임을 의미
  • Unmodified : 최근의 커밋과 비교했을 때 바뀐 내용이 없는 상태
  • Modified : 최근 커밋과 비교했을 때 바뀐 내용이 있는 상태
  • Staged : 파일이 수정되고 나서 스테이지 공간에 올라와 있는 상태이며, git add 후의 상태

로컬 저장소와 원격 저장소 사이의 파일 이동 경로 및 상태

 

변경사항 확인하기 (diff)

최근 commit한 내용과 현재 폴더의 변경 사항을 확인할 수 있다.

 

README.md를 수정한 후 git diff로 변경사항을 확인한 결과는 다음과 같다.

 

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

git log 명령어를 입력하면, 최근 커밋한 히스토리를 확인할 수 있다. log 명령어에 대한 더 자세한 내용은 부록의 ‘GitHub log 옵션’ 에서 살펴볼 것이다.

로그가 길 경우 q를 누르시면 밖으로 빠져나온다. j위, k는 아래로 이동할 수 있다.

 

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

무시할 파일 (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.io 툴을 활용하여 .gitignore를 자동으로 생성할 수 있다.

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

위 링크에 접속 후 본인의 프로젝트에서 사용하는 운영체제, 개발 환경, 기술 스택을 작성하고, 생성된 전체 내용을 복사하고 .gitignore 파일에 추가한다.

728x90
profile

Seren dev's blog

@Seren dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!