Git이란?
버전 관리 시스템(VCS, Version Control System)의 일종, 코드 관리나 협업에 유용하게 사용한다. 코드의 기록을 위한 것이라 보면 된다.
Git 구조
- Working Directory: 현재의 작업 공간. 파일을 생성, 수정, 삭제하는 것은 이곳에서 일어난다.
- Staging Area: Working Directory에서 작업한 것을 Local Repository에 올리기 전에 어떤 파일을 업로드 할 것인지 정함.
- Local Storage: 내 컴퓨터 상의 repository
- Remote Repository: Github와 같이 외부에 있는 repository
Git 다운로드
링크: https://www.git-scm.com/downloads
Git 명령어
Git 사용자 등록
사용자의 이름과 이메일 주소를 설정해야한다.
- git config --global user.name "홍길동"
- git config --global user.email "Hong@gmail.com"
- git config --list: 설정한 정보 확인 가능
git add
- git add 파일명: 해당 파일을 staging area에 올림
- git add .: 해당 디렉토리 내의 모든 파일을 git add함
git commit
- 파일의 현재 상태를 저장한다.
- git commit -m "commit message": staging area에 있던 파일을 local repository에 올린다. 이때 커밋 메세지는 보통 무엇을 했는지 영어로 작성한다.
git status
- git status: commit의 상태를 알 수 있다. working directory에서 파일의 생성, 수정, 삭제가 발생했지만, staging area에 반영되지 않은 경우(git add안함) 혹은 staging area에 올라왔지만 commit이 되지 않은 경우 등을 알수 있다.
git clone
git push
- git push origin (branch name): origin 이라는 remote repository에 해당 브랜치의 데이터를 전송한다.
git remote add
- git clone에서는 git init을 따로 하지 않음
- 그렇다면 이미 local에서 작업할 때에는 remote할 수 없나? 아니다. 할 수 있다.
- git remote add origin(Https url or ssh): origin이라는 remote repository에 연결
git fetch && git pull
- git fetch origin (branch): origin에서 해당 브랜치의 데이터를 가져온다.
- git pull origin (branch): origin에서 해당 브랜치의 데이터를 가져온 후, local과 merge시킨다.
- 주로 git pull을 사용
git branch
- git branch (branch): branch를 생성한다.
branch?
나뭇가지처럼 갈라져서 뻗어지는 것을 상상하면 된다. main이라는 기둥이 있으면 여러 branch를 통해 버전을 관리할 수 있다. 독립적으로 작업을 할 수 있으며 이 독립적인 작업물을 기존 작업물에 병합할 수 도 있다.
git checkout
- git checkout (branch): 해당 branch로 이동한다.