git은 본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해줍니다. git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능합니다. 하지만 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수 없습니다.
- 오픈 소스 버전 관리 시스템(VCS: Version Control System)
- 로컬에서 버전 관리
- 소프트웨어 개발 및 소스 코드 관리에 사용
깃(Git)으로 관리하는 프로젝트를 호스팅해주는 웹 서비스이며, 깃 저장소 서버를 대신 유지 및 관리해주는 서비스입니다.
다른 유저들과 함께 온라인으로 하나의 프로그램을 제작하는 것도 가능하여, 많은 오픈소스 프로그램들이 github을 통해서 전세계 유저들에 의해 제작되고 있습니다. 참고로 오픈소스 프로젝트는 무료이며, private 프로젝트는 유료입니다.
깃허브에 저장하는 것은 매번, 매버전을 모두 저장하고 업로드하는 방식이 아닌 각 버전들의 차이 혹은 변경이력을 저장하는 것입니다.
이를 통해서 훨씬 적은 용량으로 많은 버전 이력들을 저장할 수 있는 것입니다.
- git 로컬 저장소
개발중인 프로젝트 파일들이 담긴 폴더에서 git을 시작하면, 지금부터 이 폴더의 모든 수정내역들이 저장되는 .git이라는 저장공간이 생긴다.
이로 인해 이 폴더에서 프로젝트를 공유, 백업, 관리 하게 된다.
- Git 작업진행
working directory에서 작업을 진행하고, git add 명령어를 사용해서 staging area로 변경해주면 저장하기 전 상태가 됩니다. 여기에서 git commit -m 으로 커밋 메시지를 남기면 repository로 버전이 저장됩니다. (이상태로 git push 하면 github repository에 올릴 수 있습니니다.)
- git init
- 현재 폴더를 git 로컬저장소로 지정합니다.
- git clone
- 클론을 사용하면 원격 저장소의 코드를 내 컴퓨터에 받아올 수 있고 로컬 저장소(.git)도 자동으로 생기게 됩니다. 이어서 설명할 Pull과 Clone은 비슷하지만 다른 점이 있습니다. Clone은 로컬에 아무것도 없는 상태에서 원격저장소의 데이터를 가져오는 것을 의미하지만, Pull은 로컬에 이미 코드가 있고, 원격저장소의 수정 상태를 반영하기 위해 하는 것 입니다.
- git add [파일이름]
- 작업 디렉토리(working directory) 상의 변경 내용을 스테이징 영역(staging area)에 추가하기 위해서 사용하는 Git 명령어입니다.
- git status
- 작업 디렉토리(working directory)와 스테이징 영역(staging area)의 상태를 확인하기 위해서 사용합니다.
- git commit -m "커밋메세지"
- 파일을 추가하거나 변경사항을 저장소에 기록하기 위해 커밋 메시지를 남기는 작업을 말합니다.변경한 사람, 시간, 변경 내용 등을 기록해 과거 변경 이력과 내용을 손쉽게 파악할 수 있습니다.
- git pull
- 원격 저장소 변경 사항을 받아오는 것을 말합니다. 공동작업의 경우, 다른 사람이 원격 저장소에 업데이트한 파일이 있을 때 원격저장소와 내 로컬저장소의 상태를 동일하게 만들기 위해 pull을 이용합니다. Clone과 Pull 모두 원격저장소에서 로컬저장소로 가져오는 것이므로 헷갈리기 쉬우니 차이를 잘 이해하시고 넘어가시면 좋습니다.
- git push
- 로컬 저장소에 저장되어 있던 커밋을 원격 저장소(GitHub)로 업로드하는 것을 말합니다.
이외에 여러가지 명령어가 많지만 위의 기본 명령어를 가지고도 충분히 Git과, GitHub를 사용할 수 있다.