형상 관리 시스템(Configuration Management Systems)
버전 관리 시스템(Version Control System)
Source Data + History
협업, 작업 추적, 복구 등이 가능
Local Version Control Systems
-> 내 컴퓨터에서 버전관리가 가능하지만 내 컴퓨터 하드가 날라가면 전체 코드가 사라짐
-> 버전은 관리되지만, 협업이 어려움

Centralized Version Control Systems
-> 협업이 가능해짐
-> commit 하는 순간 배포되어 다수에게 버그 유발 가능 (서버로 바로 Commit)
-> 인터넷이 안되면 작업이 불가능
-> 자신만의 version history 를 가질 수 없음

-> Commit 하더라도 개인저장소 내에 적용됨
-> 원하는 순간에 배포(Push) 가능
-> 오프라인에서도 작업 가능
-> 자신만의 version history 를 가짐

CVS (Concurrent Versions System)
-> 1980년대 만들어진 형상관리툴
-> Commit 중 오류 발생 시 Rollback이 되지 않는 등의 문제 발생
-> SVN으로 대체됨
SVN (Subversion)
-> 2000년대에 만들어졌고 현재까지 두루 사용됨
Git (Global Information Tracker)
-> 요즘 대부분 사용

-> 파일의 원본이 아닌 Diff를 가지고 있었기에 특정 파일을 찾기 위해 긴 시간이 필요함
Git의 데이터 저장 방식
-> 파일을 저장하는 순간의 스냅샷을 저장, 변경사항이 없는 경우, 파일을 새로 저장하지 않음

Git의 구성 요소
-> Working Directory
-> Staging Area
-> .git Directory

Git에서 파일의 상태
-> Untracked(git에 아무 파일도 없을때) / Tracked
-> Staged, Committed (Unmodified), Modified

Git의 작업 순서
-> Working Directory 에서 파일을 수정
-> Staging Area (Index) 에 파일을 Staged 하여 Commit 할 스냅샷을 만듬
-> Staging Area (Index) 에 있는 파일들을 Commit 하여 .git Directory (Repository) 에 스냅샷을 저장
system config: 시스템의 모든 사용자와 모든 저장소에 적용

global config: 시스템의 특정 사용자에게 적용
local config: 특정 저장소에 적용
User Name & Email

CRLF(End of Line): 줄바꿈 문자를 말함
-> Windows에서는 CR(\r) + LF (\n) 모두 사용
-> 서로 다른 OS에서 함께 Git으로 작업한다면 core.autocrlf = true 사용(파일에 적용된 줄바꿈 문자를 CRLF에서 LF로 변경)
Editor

Defalult Branch

Git 전체 설정 확인



Git 저장소
Repository는 Git으로 관리하는 프로젝트 저장소로 파일과 디렉토리가 포함될 수 있고, 버전관리를 시작할 수 있음
Local Repository: 사용자의 컴퓨터 저장소
Remote Repository: 원격서버의 저장소

Git 저장소 생성
-> Git init: 아직 버전관리를 하지 않는 프로젝트 폴더를 Git 저장소로 만듬 (폴더 안에서 해야 됨)

-> Git Clone: Remote 저장소를 Local에 복사하여 사용 가능
Remote Repository URL(깃허브 규칙)

Git Clone

Git Clone with Token (token값과 setting 값을 참고하여 인증을 자동으로 처리해줌)

이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다