📁 CH03. 버전 관리
📌 버전이란?
- 버전은 유의미한 수정을 말함
💡버전 (version)
- 이전과는 약간씩 다른 변화를 구분하는 것
- 어떤 프로그램을 수정, 개선하여 새로워지는 것
무언가 변화하고 수정된다고 해서 무조건 버전이라고 부르지❌
그 변화가 유의미해야만 우리는 새로운 "버전"이라고 부를 수 있음.🙆
📌 버전 관리의 중요성
- 어떤 것이 변했는지 우리가 눈으로 찾는 것이 아니라 누군가가 쉽게 관리를 해주면 편함
- 처음부터 완벽한 코드를 짤 수 없으며, 세상에는 완벽한 코드가 없음 ➡️ 코드는 수정이 계속 일어날 것임.
- 버전 관리는 백업 용도. or 프로젝트나 일, 업무에 안정성을 부여해줄 수 있는 개념.
- 버전 관리는 누가 해주나요?? 🙋♀️버전 관리 시스템
- Version Control System
- 버전 관리
- 백업 복구
- (선택) 협업
📌 버전 관리 시스템의 종류
📂 버전 관리 시스템의 종류는 크게 세가지로 분류함
- ✔️로컬 VCS
- 내 컴퓨터 안에서만 : 버전 관리, 백업 복구
- 협업 X
- ✔️중앙집중식 VCS
- 중심에 (중간에) 컴퓨터를 하나 두고, 이 컴퓨터 안에 다 저장함
- 내 컴퓨터에서 버전 관리를 하는 것이 아니라, 다른 컴퓨터에 백업 용도로 관리
- 내가 필요한 특정 파일 하나만 가지고 와서 작업함 (필요한 파일 하나만..)
- 협업 O
- 대표적인 시스템으로 SVN, CVS 등이 있다.
- ✔️분산 VCS
- 내 컴퓨터와 다른 컴퓨터 모두에 저장함.
- 파일 통째로.
- 프로젝트 전체를... → 중앙 집중식보다 훨씬 안정적임
- 소규모 프로젝트, 대형 프로젝트 (크고 작은 프로젝트에) 모두 적합
- 대표적인 시스템으로 Git, Mecurial, Bazaar
📁 CH04. 깃 기본 이론
📌 깃은 00식 버전 관리 시스템입니다.
- 분산
- 깃은 로컬(내 컴퓨터에 설치되는) 시스템.
- * 깃 허브는... 원격으로 중앙에서 우리 프로젝트를 백업해두고, 버전 관리 해주고, 협업도 하게 해주는 시스템 (깃들이 모이는 곳, 깃과 소통하는 중간 역할)
- * 내 컴퓨터의 폴더(=프로젝트; 여러 개의 파일)를 하나의 묶음으로 버전을 생각해보자!
- * 깃은 내 컴퓨터 안에서 버전을 관리해주는 시스템이자, 깃허브와 소통하는 시스템
- * 깃 허브는 원격 컴퓨터에서 백업을 담당하는 시스템이자, 내 컴퓨터와 별도로 버전 관리도 해주는 시스템
- 내 컴퓨터에 깃이 깔려 있으면, 버전 관리를 로컬로 할 수 있을 뿐 아니라 깃허브와 소통(백업, 복구, ...) 할 수 있다.
- 다른 컴퓨터에도 깃이 깔려 있으면, 깃허브를 통해서 소통(다운로드, 복제, 백업, ...) 할 수 있다. ➡ "협업"
📌 내 컴퓨터에 깃 설치하기
📁 CH05. 깃과 친해지기
📌 CLI vs GUI
- 명령을 하는 방법
- CLI : 커멘드 라인 인터페이스; 명령 줄 인터페이스
- 셸(이라는 프로그램; 창)에서 글자를 입력해서 컴퓨터에게 명령을 내리는 것
- cf. 셸..? shell(조개..?)
- Ex. MS DOS, 명령 프롬포트(cmd), 파워셸, ... 배쉬 / Terminal, Windows Terminal...
- GUI : 그래픽 유저 인터페이스
- 그래픽으로 컴퓨터에게 명령을 내릴 수 있도록, 사용자에게 화면을 제공
📌 자주 쓰이는 명령어는?
-
✔️ ls : list segmentation; 이 폴더 안에 어떤 파일들이 있는지 목록을 보여주는 명령어

-
✔️ mkdir : make directory; 디렉토리 만듦
-
✔️ cd : change directory; 디렉토리 변경
-
✔️git init : 버전 관리 시작. 이 폴더 버전 관리 해줘. → .git 폴더를 숨겨서 만들어놓음 → 폴더 안의 모든 파일을 봐주는 것이 아니라 따로따로 추가해야 됨.
- 깃은 시작부터 다 트래킹하고 있진❌

-
✔️git add 파일명
- = git 친구야, 이 파일 이제부터 트래킹해줘. = 야, 이거 모아줘.
- .git
(버전 (저장 하기 전에) 관리 중 : test.txt)
- 매번 수정이 일어날 때마다 add 해줘야 함
-
✔️git status : 상태 물어보기. 저장소 내의 파일 상태 정보를 출력하는 명령.


-
✔️git commit = 버전으로 저장할 것 모으고 있었지? 지금까지 모은 걸로 버전 만들어 줘.
- 의미있는 변경 작업들을 저장소에 기록하는 동작을 말하는 것.
- .git
(버전 (저장 하기 전에) 관리 중)
-
✔️git log : 저장소에 기록된 이력(commit history)를 출력하는 명령.
📌 GUI로 init, add, commit
- GUI로도 가능!!
- VCS의 소스 제어 버튼으로 가능
📌 깃 히스토리 설치하기
- VCS의 extension에서 git history 다운 (시계 모양) → git log를 gui적으로...
