버전 관리
버전이란? -> 유의미한 수정
버전 관리의 필요성
- 완벽한 코드라는 건 없다! -> 고도화의 연속으로 완벽에 가깝게
- 백업 용도
- 버전 자체의 완성도
-> 업무의 안정성 부여
버전 관리 시스템 (Version Control System)
- 버전 관리
- 백업 복구
- 협업! 🌟
종류
1️⃣ 로컬 VCS
- 내 컴퓨터 안에서만 시스템을 설치해서 조금 더 쉽게,
- 백업복구버전관리 가능
- 협업X
2️⃣ 중앙집중식 VCS
- 중심의 다른 컴퓨터에 저장 -> 필요한 파일 하나만 가져와서 사용 (꼬이기 쉬움)
- 중앙컴퓨터와 연결만 돼있다면 협업O
- ex)SVN, CVS
3️⃣ 분산 VCS
: 내 컴퓨터&다른 컴퓨터 모두 저장, 전체 통째로! (한묶음 단위, 더 안정적, 편리)
- ex) Git, Mecurial, Bazaar
깃 기본 이론
깃
로컬(내 컴퓨터에) 설치되는 시스템
분산식 버전 관리 시스템
👉 내 컴퓨터 안에서 버전을 관리해주는 시스템이자, 깃허브와 소통하는 시스템 🌟
깃허브
깃이 모여 소통하는 중간역할
원격으로 중앙에서 우리 프로젝트를 백업, 버전관리, 협업 하게 해주는 시스템
내 컴퓨터의 폴더 ( = 프로젝트; 여러 개의 파일)를 하나의 묶음으로 버전을 생각
내 컴퓨터에서 관리해야하는 내 프로젝트의 히스토리들을 대신 관리해줌
👉 원격 컴퓨터에서 백업을 담당하는 시스템이자, 내 컴퓨터와 별도로 버전 관리도 해주는 시스템
내 컴퓨터에 깃이 깔려 있으면, 버전 관리를 로컬로 할 수 있을 뿐 아니라 깃허브와 소통(백업, 복구, ... 용도로 사용)
다른 컴퓨터에도 깃이 깔려 있으면, 깃허브를 통해서 소통(다운로드, 복제, 백업, ...) 할 수 있음
👉 협업!
깃과 친해지기
명령을 하는 방법
1️⃣ CLI : 커멘드 라인 인터페이스, 명령 줄 인터페이스
셸에서 글자를 입력해서 컴퓨터에게 명령을 내리는 것
🔺shell 조개를 통해 안에 있는 내용에 접근 ex) MS DOS, 명령프롬프트(cmd), 파워셸, Bash, Terminal, Windows Terminal ..
2️⃣ GUI : 그래픽 유저 인터페이스
그래픽으로 컴퓨터에게 명령을 내릴 수 있도록, 사용자에게 화면을 제공
명령어
`ls` list segments
: 현재 폴더 안에 있는 파일/폴더 목록 모여줌
`ls -a`
: 숨김 파일(.으로 시작하는 파일까지) 전부 보여줌
`cd` Change Directory
: 폴더를 이동(작업 경로 변경)
`mkdir 폴더이름` make directory
: 새 폴더를 만듦
`git --version`
: git 버전 확인
`git status`
: git 상태 확인
`git init` initialize 🌟
: 현 폴더를 Git으로 버전 관리하는 저장소로 시작 -> 현재 폴더 안에 .git 폴더를 만듦
시작부터 트래킹 하고 있지 X
`git add 파일` 🌟
: 트래킹할 파일 지정 -> .git 에 '저장 하기 전에 버전 관리 중' 상태 적어둠
버전으로 만들 거 일단 모으면서 더 저장할 거없나 기다리는 중

`git commit`
: 지금까지 모은 걸로 버전을 만들어줘. -> .git에 버전 0.1이라고 저장 -> add됐던 친구들 대기열 비워짐

이 상태에서 `c` 두번(change) 해서 insert 가능하게

커밋메세지 `first comit` 입력, `esc`
`:wq` (저장하고 닫을게)


`git log`

Github로 협업하기
`git remote -v`
: 현재 로컬 Git 저장소에 연결된 원격 저장소(remote)의 주소를 확인
Git History 다운로드
: git log를 GUI로 보여주는 도구
과제 캡쳐본


이전에 써봤던 명령어 들이었는데, 생각해보면 그냥 감으로만 이해하고 정확히 이해하지 못했던 것같다.
특히 `init` -> `add` -> `commit` 과정을 그저 필요하고 당연한 과정으로 생각하고 기계처럼 쓰기만 했었던 것같은데,
git과 github의 연결과정을 완전히 이해하고 기본 foundation을 정립하고 공부할 수 있어 정말 좋았다.
그리고 이전에 진행했던 프로젝트에서 git 마무리를 해놓지 않아서 어떻게 새롭게 시작하는 걸 찾아보면서 진행해서
시간이 꽤 오래 걸렸다 ㅜㅜ
전에 프로젝트를 진행하면서 git 충돌문제가 굉장히 많이 났어서 코드쓰는 것보다 터미널에서 많은 시간을 보냈던 것같은데,
다시 기초부터 정립해나가보니 충돌이 충분히 날만했던 것 같고^^,, 다음주의 Git 강의도 얼른 들어보고 싶을 정도로 흥미롭다.
오늘 빌린 맥북도 도착했고
이틀동안의 휴가기간이 있으니 복습해서 정말 내것으로 만들어야지!!!!!!!!!


zep 캐릭터 꾸몄다 ㅎㅎ 귀여워 맘에들어 (●'◡'●)
내일 휴일이지만 zep 출석한다!
'Git' 카테고리의 다른 글
| [Git] clone에서 pull request까지 (5) | 2025.06.29 |
|---|---|
| [GIT] VCS, GIT 쌩기초 용어정리 (0) | 2025.06.29 |