● 버전 관리 시스템
- 원하는 시점(버전)으로 이동할 수 있으며, 각 버전별로 여러 개발자가 협업할 수 있는 최적의 환경을 제공하는 시스템
● SVN
- 작업내역 커밋 시 변경사항과 히스토리가 즉시 서버로 전송되기 때문에 관리가 용이하다.
- 또한 간단한 설치와 사용 방법으로 별도의 교육 없이 초보자도 쉽게 사용할 수 있다.
- 하지만 항상 원격 저장소(SVN 서버)를 필요로 하며 서버간 버전 관리가 힘들다.
● Git(분산형 버전 관리 시스템)
- SVN이 가지고 있던 클라이언트와 서버 간의 버전 관리 문제를 많이 보완해준 시스템
- 서버 뿐만 아니라 로컬에서도 버전 관리가 가능하며, 로컬이 서버가 될 수 있고, 서버도 로컬이 될 수 있다.
- 브랜치라는 개념을 사용하여 개발자 마음대로 로컬 환경에서도 커밋과 버전 관리가 가능하다.
● Git-Hub(분산형 버전 관리 공유 서버)
- Git으로 관리하는 프로젝트를 호스팅하는 사이트 중 하나이다.
- 로컬 저장소에서 작업하던 파일을 다른 클라이언트와 공유하기 위한 서버이다.
● Git 설치
1. git 검색 후 다운로드 클릭 > 최신버전(2.33.0.2) 다운로드
2. 설치파일 실행 > Next > C:\Git > Next > Next > Next
3. Use Vim > Let Git decide > Git from command line and also.. > Use bundled OpenSSH
4. Use the OpenSSL library > Checkout Windows-style,... > Use MinTTY > Default >
5. Git Credential Manager Core > Enable file system caching > Install
● 저장소의 종류
- 로컬 저장소(local) : 개인 전용
- 원격 저장소(remote) : 공유 전용
● 작업 트리(Work-Tree)
- 폴더 또는 디렉터리를 의미한다.
● 스테이징 - add
- 작업 트리를 커밋하기 전, 작업 트리의 파일 상태를 기록하는 임시 공간(인덱스)에 올리는 작업
- 커밋하기 전 반드시 커밋할 내용은 인덱스에 추가되어야 하며, 이를 스테이징이라고 한다.
- 변경한 모든 파일을 커밋하지 않고 원하는 파일만 골라서 스테이징을 하게 되면 인덱스에 등록된 파일들만 커밋된다.
- 스테이징을 하지 않은 파일들은 커밋이 될 수 없다.
● 커밋 - commit
- 새로운 버전을 만들 때 사용한다.
- 예를 들어 A와 B라는 파일을 하나의 버전으로 관리하고자 할 때 커밋을 사용한다.
- 커밋 시 고유한 커밋 아이디가 부여되며, 원하는 버전으로 돌아갈 때 커밋 아이디 중 앞 7글자를 사용한다.
● 체크아웃 - checkout
- 원하는 버전 또는 브랜치로 이동하고 싶을 때 사용한다.
- 체크아웃 명령어 뒤에 커밋 아이디 전체 또는 앞 7글자를 작성하면 해당 버전으로 이동하게 된다.
● 브랜치(Branch)
- 한 개의 저장소를 여러 갈래로 나누어 관리할 수 있다.
- 각각 독립된 Branch : 각각의 개발자들이 기존 버전과 비교 또는 버그 테스트 등 협업을 위해 필요한 목적으로 사용할 수 있다.
- 커밋을 통한 버전 관리는 한 가지의 커밋 히스토리 경로를 가지지만 브랜치를 나누면 커밋 히스토리를 여러 경로로 나누어
사용이 가능해진다.
● 푸쉬 - push
- 로컬 저장소에 커밋한 파일들을 원격 저장소에 추가하는 명령어이다.
● 풀 - pull
- 원격 저장소에 있는 파일들을 로컬 저장소로 전달받는 명령어이다.
● 클론 - clone
- 원격 저장소에 있는 파일들을 새로운 로컬 저장소로 복사하여 전달받는 명령어이다.
● 현재 작업트리를 Git에 등록
1. git 폴더 생성 > firstProject 폴더 생성 후 우클릭 > Git Bash Here 클릭
2. $git init
3. 버전관리를 위한 내 정보 등록하기 - Git-Hub에 등록된 계정의 정보와 동일하게 작성
$ git config --global user.email "bugbugcoding@gmail.com"
$ git config --global user.name "bugbugcoding"
$ git config --list
4. 버전 설명 파일 작성
- firstProject 안에 README.txt 파일 생성 > "커뮤니티 게시판 첫번째 버전입니다." 내용 입력
5. 버전 추가
$ git add README.txt
$ git status
$ git commit -m "버전 설명 추가"