본문 바로가기
CS/BackEnd

Git 교과서

by Diligejy 2022. 5. 4.

p.25

코드와 콘텐츠의 변화를 관리하고 추적하는 소프트웨어를 버전 관리 시스템(VCS, Version Control System)이라고 합니다. 최초의 버전 관리 시스템은 유닉스 환경에서 사용 가능한 SCSS(Source Code Control System)입니다. SCSS는 1970년대 마크 로치킨드가 개발했으며, 이후 다양한 VCS 프로그램이 등장합니다. VCS에서 버전 파일들을 관리하고 저장하는 공간을 저장소(repository)라고 합니다.

 

p.28

깃은 다음과 같이 몇 가지 특징으로 구분할 수 있습니다.

 

- 대표적인 분산형 버전 관리 시스템입니다. 원격 저장소(remote repository)와 별개로 개발자 각각의 로컬 컴퓨터에 완벽한(원격 저장소의 내용과 동일한) 복제본 소스 코드를 저장할 수 있습니다. 완벽한 복제본이 있으면 매번 중앙 저장소를 조회하지 않아도 개발을 진행할 수 있습니다.

- 네트워크나 인터넷이 연결되어 있지 않은 상태에서도 로컬 컴퓨터의 소스 코드만으로 버전을 관리할 수 있습니다. 작업 후 나중에 인터넷에 연결되었을 때 동기화만 하면 됩니다.

- 원격 저장소로 많은 개발자의 저장소와 연결하거나 동기화 작업을 할 수 있습니다. 또 직접 만든 새로운 소스 코드를 배포하거나 내려받은 소스 코드를 수정한 후 다시 병합(merge)할 수도 있습니다.

 

p.31

- 초기화 : 폴더를 깃 저장소로 변경합니다.

- 커밋 : 변경된 코드의 이력을 기록합니다.

- 브랜치 : 분리 격리된 코드 이력을 기록합니다.

- 병합 : 기존 이력과 분리된 이력을 통합합니다.

- 푸시 : 로컬 저장소의 이력을 서버로 전송 및 공유합니다.

 

p.72

숨겨진 폴더까지 같이 복사하려면 일반적인 cp 명령어로는 할 수 없습니다. -r 옵션을 사용해야 숨겨진 폴더도 함께 복사됩니다.

 

cp -r 원본폴더 복사폴더

 

p.78

깃은 VCS의 특성 때문에 저장 공간을 논리적으로 분리합니다. 깃을 처음 학습할 때는 이러한 논리적인 공간 분리 때문에 어렵게 느끼곤 합니다. 깃은 저장 공간을 크게 '작업을 하는 공간(working)'과 '임시로 저장하는 공간(stage)', '실제로 저장하여 기록하는 공간(repository)'으로 나눕니다. 이렇게 논리적으로 공간을 분리하는 것은 깃의 동작과 이력을 좀 더 효율적으로 처리하기 위해서입니다. 

 

워킹 디렉터리는 '작업을 하는 공간'을 의미합니다. 말 그대로 로컬 저장소에 접근할 수 있으며, 실제로 파일을 생성하고 수정하는 공간입니다. 단순하게 파일을 저장하는 공간이라고 생각하면 됩니다.

 

p.78~79

깃은 워킹 디렉터리에 있는 파일들을 '추적됨'과 '추적되지 않음' 상태로 구분합니다.

 

untracked 상태 

-> 실제 작업중인 파일은 워킹 디렉터리 안에 있습니다. 워킹 디렉터리는 현재 작업 중인 소스 코드를 담고 있으며, 운영 체제도 워킹 디렉터리 안에 있는 파일들만 접근하고 수정할 수 있습니다. 워킹 디렉터리는 사용자 작업 공간이라고 생각하면 됩니다. 이 공간에 파일을 추가하거나 수정했다고 해서 깃이 자동으로 관리해 주지는 

 

댓글