1. Git이란?
- Git은 Source code 저장을 도와주는 프로그램이다.
- Git을 사용하여 프로그램을 저장하면, 누가/언제/어떤 글자 또는 코드를 변경했는지 알 수 있고, 중요한 코드를 실수로 바꾼 경우 되돌릴 수도 있다.
2. Git의 장점
-
Source code를 주고 받을 필요 없이, 같은 파일을 여러명이 동시에 작업하는 병렬 개발이 가능하다.
-
Branch를 통해 개발한 뒤, 본 프로그램에 합치는 방식으로 개발을 진행할 수 있다.
-
분산 버전 관리이므로 인터넷이 연결되어 있지 않아도 개발을 진행할 수 있으며, 중앙 저장소가 날라가더라도 다시 원상복구가 가능하다.
-
개인 프로젝트를 진행하더라도 Git을 통해 버전 관리를 하면 체계적인 개발이 가능해지고, 프로그램이나 패치를 배포하는 과정도 간단해진다.
-
pull을 통해 업데이트를 하고, patch로 파일을 배포해준다.
3. Github란?
- Git으로 저장한 파일들이 실제로 저장되는 장소이다.
4. Git 용어
1) git init
- git 하위 디럭토리를 생성한다.(폴더를 만든 후, 그 안에서 명령을 싱행하여 새로운 git 저장소를 생성)
2) git branch
- 독립적인 공간을 생성한다.
- branch에서 수정 후 commit하면 독립적인 공간인 ex)branch lab1에만 기록되며 master branch에는 어떠한 영향도 주지 않는다
- 원하는 만큼 빠르게 branch를 만들 수 있다.
3) git branch -b [브랜치 이름]
4) git checkout [브랜치 이름]
5) git branch -d [브랜치 이름]
6) git commit -m "커밋 메세지"
- 변경사항을 확정 짓고 commit을 생성한다.
7) git pull [로컬저장소 이름][브랜치 이름]
- 원격에 저장된 git 프로젝트의 현재 상태를 다운받고 현재 위치한 branch로 병합한다.
8) git push [로컬저장소 이름][브랜치 이름]
- 로컬 저장소의 내용에서 생성된 brach로 commit된 내용을 원격 서버에 업로드한다.
9) git clone [저장소 경로]
10) git add <파일명>
- commit에 단일 파일의 변경 사항을 포함한다.
11) git add .or *
- commit에 모든 파일의 변경 사항을 포함한다.
12) git status
13) git log
- 현재 위치한 branch commit 내용을 확인하고 식별자를 부여한다.
14) git fetch origin
- 원격에 저장된 git프로젝트의 현 상태를 다운로드한다.
15) git stash
- 아직 마무리하지 않은 작업을 stack에 잠시 저장한다.
16) git stash pop
- stack에 잠시 저장된 마무리되지 않은 작업을 꺼내온다.
5. 관련 용어
1) Repository
- 저장소를 의미하며, 저장소는 History, Tag, Source의 가지치기 혹은 branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 History를 확인 가능하다.
2) Working Tree
- 저장소를 어느 한 시점으로 바라보는 작업자의 현재 시점이다.
3) Staging Area
- 저장소에 Commit 하기 전에 준비하는 위치이다.
4) Commit
- 현재 변경된 작업 상태를 점검을 마치면 확정하고, 저장소에 저장하는 작업이다.
5) Head
6) Branch
- 가지 또는 분기점을 의미한다.
- 작업시 현재 상태를 복사하여 branch에서 작업을 한 후에 완성 후 Merge 하여 작업한다.
7) Merge
- 다른 branch의 내용을 현재 branch로 가져와서 합치는 작업이다.