Git 사용법 정리

 

깃은 모든 파일의 변경사항을 기록하고 여러 명의 사용자들 간의 작업을 조율할 수 있도록 도와준다.

send me email if you have any questions.


초기화

$ git init

현재 파일을 Git 저장소로 만들고 이 폴더의 모든 변경 사항을 .git 이라는 숨김 폴더에 저장한다.

$ git clone 원격 저장소 주소

다운로드한 원격 저장소는 저장소 이름으로 로컬에 폴더를 생성한다.
보통 github를 원격 저장소로 많이 사용한다.

$ git push

commit을 원격 저장소에 업로드.

$ git fetch

원격 저장소의 최신버전을 가져온다.
협업을 하다보면 같은 원격 저장소를 사용하는 팀원이 코드를 푸시한 경우 이 명령으로 최신 버전을 가져온다.

$ git pull

원격 저장소의 최신버전을 merge

스테이징

Git은 파일의 변경 내역을 스테이징 단계를 거쳐 저장한다.
스테이징은 변경사항 중에서 저장하고 싶은 부분만 저장하는 개념이다.

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test.txt

폴더의 현재 변경 상태를 보는 명령
폴더에는 tset.txt 파일이 있는데 아직 스테이징 단계를 거치지 않아서 “Untracked files” 목록에 있다.

$ git add test.txt

test.txt를 스테이지에 넣는다.

$ git add .

폴더의 전체 변경사항을 스테이지에 넣는다.

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   test.txt

스테이징된 파일은 커밋 직전 상태로 변경된다.

수정 전 상태로 되돌리기

$ git reset --hard 돌아갈 커밋 해쉬값

커밋

커밋(commit)은 깃이 폴더의 변경 내용을 저장하는 단위이다.
먼저 스테이지 상태에 두어야만 커밋을 만들 수 있다.

$ git commit -m "커밋 메시지"

커밋 메시지는 변경 내용을 설명하는 메시지이다.

$ git commit -am "커밋 메시지"

-a옵션은 신규파일을 제외하고 모든 파일의 변경사항을 스테이징함과 동시에 커밋하는 옵션이다.
-m 옵션과 함께 사용할 수 있다.

$ git commit --amend

이전 커밋에 변경사항을 추가
마지막 커밋 메시지를 수정하는 화면이 나오는데, 저장하고 닫으면 이전 커밋에 변경내용이 추가된다.

로그

$ git log
commit e8e5b757a2a3365fdd17154e041e4465f0972dbb (HEAD -> master, origin/master, origin/HEAD)
Author: github_limjunho <jewel7492@naver.com>
Date:   Fri Aug 28 09:57:38 2020 +0900

    MySql data insert and delete example

commit 574cc699b1619a9a9236ae22e2fc19adafec536d
Author: github_limjunho <jewel7492@naver.com>
Date:   Fri Aug 28 09:53:44 2020 +0900

    MySql data insert and delete example

로그에는 커밋을 식별할 해쉬값, 커밋 작성자, 커밋 일자, 커밋 메시지를 확인할 수 있다.

브랜치

Git에는 브랜치(branch)와 머지(merge)의 개념이 있다.
예를들어 AB프로그램에서 A기능과 B기능을 따로 개발하여(B기능에 대한 브랜치 생성) 하나로 합치는 경우(머지)이다.
Git은 기본적으로 master브랜치를 가지고 있다.

$ git branch

브랜치 목록 확인

$ git branch Bbranch master

master브랜치를 기준으로 Bbranch생성

$ git checkout bBranch

Bbranch로 이동
Git에서 브랜치간의 선택을 체크아웃한다고 표현한다.

$ git merge bBranch

브랜치 병합(merge)
기준이 되는 master 브랜치로 이동하여 bBranch를 master에 머지한다.