깃은 모든 파일의 변경사항을 기록하고 여러 명의 사용자들 간의 작업을 조율할 수 있도록 도와준다.
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에 머지한다.