기본개념
-
VCS (Version Control System)
- 파일의 변경 이력을 시간에 따라 기록하고 관리하는 시스템.
- 특정 시점의 버전으로 되돌리거나, 변경된 내용을 비교하고, 여러 사람의 작업을 합칠 때 사용.
-
Git
- 가장 널리 쓰이는 VCS의 한 종류.
- 각 개발자가 자신의 컴퓨터에서 독립적으로 작업하고 나중에 합치는 분산형 관리 방식에 특화됨.
-
GitHub
- Git으로 관리하는 프로젝트를 올려두고 공유하는 웹 호스팅 서비스.
- Git이 도구라면, GitHub는 그 결과물(저장소)을 보관하고 협업하는 플랫폼.
-
Repository (저장소)
- 프로젝트의 모든 파일과 변경 내역을 담고 있는 공간.
- 내 컴퓨터(로컬)와 GitHub 같은 원격 서버에 둘 다 존재할 수 있음.
-
File (파일)
- 저장소 안에서 Git이 변경 내역을 추적하는 대상이 되는 개별 코드나 문서.
-
SHA (Secure Hash Algorithm)
- 파일 내용이나 커밋 같은 각 버전을 식별하기 위한 고유한 해시값.
- 내용이 조금이라도 다르면 완전히 다른 값이 생성되므로, 이를 통해 데이터의 무결성을 보장하고 버전을 정확하게 구분함.
파일 상태 용어
-
tracking (Tracked)
- Git이 해당 파일의 변경 이력을 알고 있으며 관리 대상으로 삼고 있는 상태.
- 과거에 커밋되었거나
git add로 추가된 적 있는 모든 파일을 의미함.
-
modified
- Tracked 상태의 파일을 수정한 후, 아직 Staging Area에 추가(
git add)하지 않은 상태. - 마지막 커밋 버전과 현재 작업 디렉토리의 파일 내용이 달라졌음을 의미함.
- Tracked 상태의 파일을 수정한 후, 아직 Staging Area에 추가(
-
staged
- Modified 상태의 파일을 다음 커밋에 포함시키기 위해
git add명령으로 Staging Area에 등록한 상태.
- Modified 상태의 파일을 다음 커밋에 포함시키기 위해
Pro Git2 에 나오는 파일 상태 변화

- Untracked : 깃에서 버전 관리를 한 적이 없기 때문에 수정 여부를 추적할 수 없는 상태
- Unmodified : 수정되지 않은 파일
- Modified : 수정된 파일
- Staged : Stage 영역에 올라간 파일
git 명령어
-
git remote
- 원격 저장소(보통 GitHub)의 목록을 관리하는 명령어.
git remote add <이름> <주소>로 새로운 원격 저장소를 추가하거나,git remote -v로 현재 연결된 원격 저장소 목록을 확인할 수 있음.
-
git log
- 저장소의 커밋 히스토리를 시간순으로 보여주는 명령어.
- 각 커밋의 SHA 해시, 작성자, 날짜, 커밋 메시지 등을 확인할 수 있음.
-
git clone
- 원격 저장소(GitHub에 있는 프로젝트)를 내 컴퓨터로 그대로 복제하여 로컬 저장소를 만드는 명령어.
- 프로젝트의 모든 파일과 전체 히스토리를 포함하여 가져옴.