728x90
반응형
버전 관리
파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
- 중앙집중식 버전 관리
- 파일을 관리하는 서버가 별도로 있고, 클라이언트가 중앙 서버에서 파일을 받아서 사용
- 모든 클라이언트의 로컬 데이터베이스를 관리하는 것보다 VCS 하나를 관리하는게 쉬움
- 중앙 서버에 문제가 생기면 치명적
- 분산 버전 관리
- 저장소를 전부 복제
- 서버에 문제가 생기면 복제물로 다시 작업 시작 (서버 복원)
- 리모트 저장소를 통해 협업 가능
Git
깃. 소스코드 관리를 위한 분산 버전 관리 시스템
빠른 수행 속도에 중점을 두고 있음
Repository
저장소
프로젝트 관련 내용을 저장하는 공간
- local: 컴퓨터 내부
- remote: 대표적으로 Github 같이 공유되는 사이트
Git 파일의 상태
(추적되고 있는 Tracked 상태)
Committed
- 데이터가 로컬 데이터베이스에 안전하게 저장됨
Modified
- 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것
Staged
- 현재 수정한 파일을 곧 커밋할 것
Git 프로젝트의 단계
.git directory
- 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
- 다른 컴퓨터의 저장소를 Clone할 때 Git Directory가 만들어짐
working tree
- 프로젝트의 특정 버전을 Checkout 한 것
- 작업 중인 디스크 내의 git directory 안에 압축된 데이터베이스에서 파일을 가져와 워킹 트리를 생성
Staging Area (= index)
- 단순한 파일로 곧 커밋할 파일에 대한 정보 저장
명령어
git init
- .git 폴더 생성 (파일 추적 및 작업 가능)
git add
- 변경된 작업 파일을 Staging Area로 추가
git commit
- Staging Area의 내용을 local repository에 확정
git push
- local repository의 내용을 remote repository로 업로드
git pull
- local repository의 내용을 remote repository에서 가져옴
git clone
- .git을 포함한 remote repository의 파일을 local repository에 복사
협업
branch
- 독립된 작업 공간
- 기본적으로 Main[Master] 브랜치 생성 (브랜치를 나누어 작업한 후 Main[Master]로 합치는 작업을 함)
- checkout 또는 switch 명령으로 브랜치 변경
head
- 현재 작업중인 branch를 가르킴
merge
- 두 개의 branch에서 작업한 내용을 하나로 합침 (현재 브랜치를 기준으로 병합)
- 같은 곳을 수정하면 충돌이 발생해 이를 해결해야 함!
728x90
반응형
'Programming > Tips' 카테고리의 다른 글
[TDD] Mock 객체 알아보기 (0) | 2021.07.23 |
---|---|
자바 프레임워크(Java Framework) 깨알 지식 (0) | 2021.07.22 |
[POSTMAN] API 테스트하기 (0) | 2020.09.16 |
[머신러닝] 용어 정리 (지도학습, 비지도학습, 강화학습) (0) | 2020.08.18 |
[VSCode] Chrome으로 실행하기 (3) | 2019.04.04 |