2 기초
source: categories/study/git-beginner/git-beginner2.md
2.1 Git
-
Git is a
free
andopen source
distributed version control system
designed tohandle everything
from small to very large projects withspeed
andefficiency
. (Git 공식사이트)- Git은 코드를 버전별로 관리를 할 수 있게 해줍니다. 꼭 코드에만 국한되어있는 것은 아닙니다.
- Git은 분산 버전 관리 시스템입니다.
이것이 Git의 가장 주요한 기능이라 할 수 있습니다.
distributed
가 의미하는 것이 ‘분산'인데, 왜 분산이냐면 코드가 중앙 저장소에만 있는 것이 아니라 이 코드를 내려받는 모든 사람들이 다 원본을 갖고있게 되기 때문입니다.
그래서 중앙 저장소에있는 코드가 사라지더라도 한명이라도 누군가 이 코드를 내려받고 Git을 사용하고 있었다면 그곳에서 복구를 할 수 있게됩니다. - Git은 작은 프로젝트에서 큰 프로젝트까지 모두 사용할 수 있습니다.
- Git은 빠르고 효율적입니다.
-
CVS, SVN, Mercurial 등 다른 버전관리 시스템도 있습니다.
그렇다면 많고많은 버전관리 시스템에서 왜 Git을 사용해야될까?
2.1.1 Why Git?
-
공유(협업)
- 실무에서 일할 때 하나의 프로젝트 내에서 부분을 나눠서 개발하게 됩니다.
작업이 끝난 코드를 공용 코드에 합쳐야 개발서버와 리얼서버에 반영할 수 있습니다. - 내가 작업한 코드를 공용 저장소에 합치기 전에 코드 리뷰도 받을 수 있다는 장점도 있습니다.
깃헙 같은 것들을 이용하면 코드를 무조건 합치는 것이 아니라 합치기 전에pull request
라는 것을 보내면서 거기서 코드 리뷰를 받을 수 있습니다.
- 실무에서 일할 때 하나의 프로젝트 내에서 부분을 나눠서 개발하게 됩니다.
-
보관(백업)
- 안전하게 웹 저장소에 코드를 저장해놓을 수 있습니다.
- 언제 어디서든 코드를 내려받을 수 있습니다.
집에서 작업한 것을 공용 저장소에 올려놓기만하면, 회사에가거나 다른 노트북을 사용하더라도 그곳에서 코드를 내려받아서 내가 하던 작업을 이어서 할 수 있습니다. - 깃헙에 올렸다고 한다면 깃헙이 망하지않는 이상 내 코드는 안전하다고 할 수 있습니다.
-
대세
- 수많은 IT 기업들에서 사실상 표준으로 Git을 사용합니다.
엔터프라이즈 GitHub 또는 GitLab 등을 사용하여 코드를 관리하고 있습니다. - 코드를 아무리 잘 짜도 코드를 공유하는데 어려움을 겪으면 실무에서 일하기 힘듭니다.
- 수많은 IT 기업들에서 사실상 표준으로 Git을 사용합니다.
-
기타
- 개발자 뿐만아니라 디자이너나 기획 직군도 사용하면 유용합니다.
2.2 Setting
2.2.1 계정 연결
git config --global user.name "hyungju-lee"
git config --global user.email "aaaaa@gmail.com"
--global
옵션은 PC 전체에서 사용하겠다는 뜻입니다.
--global
옵션을 주지 않으면 해당 git 프로젝트에서만 설정이 적용되게됩니다.
user.email
엔 깃헙 id에 등록한 이메일을 입력하시면 됩니다.
2.2.2 alias
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
alias
를 사용하는 이유는 Git 명령어를 짧게 사용하기 위해서입니다.
위와 같이 checkout
을 co
로 branch
를 br
로 줄여서 사용하면 작업 효율이 올라갑니다.
- alias 및 현재 Git 설정 상태 보기:
git config --list
- 참고: Git Alias
2.3 GitHub에 코드 올리기
-
GitHub?
- 온라인 코드 저장소
- 무료, 단 비공개 저장소의 경우 3명 이상이 사용할 경우 유료
- 많은 오픈 소스들이 GitHub을 사용
mkdir <폴더이름>
echo "내용아무거나" >> README.md
git init
git add README.md
git commit -m 'initial commit'
// 위에서 alias 했으므로 alias 등록한 명령어로 아래와같이 커밋해도된다.
git ci -m 'initial commit'
git remote add origin https://github.com/<깃아이디>/<레포이름>.git
git push -u origin master
2.4 GitHub에서 코드 받기
2.4.1 clone
- 원격 저장소에있는 코드를 내려받는 것
- 실무에서 일하면서 새로운 repository를 만들어서 올리는 것보다 이미 다른 사람이 만든 것을 clone하는 경우가 더 많다.
git clone https://github.com/<깃아이디>/<레포이름>.git
코드를 쉽게 clone
해서 받을 수는 있지만 push
는 아무나하지 못한다.
권한이 있어야만 할 수 있다.