깃(Git)
리누스 토발즈가 2005년 리눅스 커널 개발에 사용할 관리 도구로 개발한 이후 주니오 하마노에 의해 유지보수 되고 있는 소프트웨어 버전 관리 도구
- 분산 소스 버전 관리 시스템
- 서버를 분산시켜 구출할 수 있게 하는 소프트웨어
- 소스코드를 효율적으로 관리할 수 있게 해주는 형상관리도구
깃허브(GitHub)
- 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스
- Git을 업로드 할 수 있는 웹사이트
버전관리란?
- 소스 하나 또는 묶음을 하나의 버전으로 간주.
- 파일이나 폴더를 추가, 수정, 삭제 하며 사람이 직접 관리한다.
- 원할 때 예전 버전 내용 전체를 되돌려 볼 수 있으며 복잡한 코드를 개발할 때 이전 버전과 비교하기 용이하다.
버전관리가 필요한 이유
- 전체 개발 소스를 공유하면서 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 서로 공유하며 개발할 수 있기 때문에 개발자간의 협업에 필요하다.
Git의 주요 명령어
git init
git status
- 저장소 상태를 체크, 어떤 파일이 저장소 안에 있는지, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 branch에서 작업하고 있는지 등을 확인 가능
git add
- working director 상의 편집, 추가한 파일을 Stage area에 추가
git commit
- 보통 git commit -m "커밋 내용" 의 형태로 CLI에서 실시
git checkout
- 지정한 branch로 이동
- 현재 작업중인 branch는 HEAD 포인터가 가리키는데, checkout 명령을 통해 HEAD 포인터를 지정한 branch로 이동
git push
- local repo의 branch를 remote repo에 업로드
- git push -f 옵션으로 강제 push도 가능 (rebase 후에는 -f 옵션 필요)
Git을 이용해 버전 관리 작업을 시작할 때는 먼저 'init' 명령으로 지역저장소를 만들고, 'remote add' 명령으로 원격 저장소에 연결한 후 'add -> all -> commit -> push'를 한다.
이후 버전관리는 'fetch -> 작업 -> add -> commit -> push' 과정으로 진행된다. 나머지 명령은 작업 과정이나 자료 송수신 과정에서 필요에 의해 수행한다.