저번에 우분투를 완전히 날려버린 나에게 소잃고 외양간을 고치는 법을 알려주는 파트이다.
Git은 형상 관리 시스템(버전 관리 시스템) 중 하나 이다. 끊임없이 수정과 테스트를 시도하는 개발자들에게는 꼭 필요한 시스템이다. 수정사항이 늘 맞는다는 보장이 없기 때문이다.
Git의 큰 특징은 분산형 관리 시스템이라는 것이다. 중앙 서버에 소스코드와 히스토리를 저장하지 않아서 중앙 서버에 문제가 발생하더라도, 로컬 저장소들이 남아있어서 복구할 수 있다.
그래서 여러 사람들이 자신의 컴퓨터에서 작업을 해도 나중에 commit을 해서 합치면 됨으로 공간성과 시간성을 뛰어넘게 해주는 시스템이다.
저장소를 두 가지로
Remote Repository
Local Repository
이렇게 나눌 수 있다.
Remote Repository는 온라인 서버 상의 저장소로 여러 사람들이 함께 사용하는 저장소이다.
Local Repository는 개인 저장소로 개발자(사용자)들 각각 컴퓨터의 저장소이다.
Git을 사용하는데 필요한 다양한 명령어 들을 정리해 보자면
git clone [Repository address]
- Fork를 통해 Remote Repository에서 내 Repository로 가져온 자료를 내 컴퓨터로 가져오는 명령어이다.
위에서 언급했 듯이 분산형 관리 시스템이여서 온라인 서버 상의 저장소에 있는 자료들을 내 컴퓨터에 가져와서 작업해야 된다.
작업이 끝나면 untracked file을 내 작업공간에서 Staging area로 보내는데 이 과정을 add라고 한다.
그리고 Staging area에서 Staged 파일을 Local Repository로 보내는 작업을 commit이라고 하는데, 커밋을 할때 뒤에 메시지를 달 수 있다.
git commit -m '메시지'
- 수정 작업이 끝났을 때 변경 사항과 코멘트를 남긴다.
만약 commit 한 내용에 에러가 있어서 에러를 수정하고 싶으면 reset 명령어를 통해서 commit을 cancel 할 수 있다.
git reset
- loacal 에서 commit한 내용을 취소하는 명령어
git reset HEAD^
git reset HEAD~1
- 가장 최신 commit을 취소하는 명령어
가 있는데
gi reset --hard HEAD~
- 매우 위험한 명령어로 데이터를 삭제하는 명령어이다. 되돌릴 수 없는 특징이 있다.