1~2년간 풀어온 알고리즘 문제를 Github에 저장해오고 있었는데, 얼마전 포멧하고 다시 세팅하는 과정에서
repository를 다 날려 먹었다. (push가 안되서 Stackoverflow에서 글은 읽지않고 명령어만 따라쳤음...)
BOJ, SWExpert 등 합쳐서 600~700개의 코드 파일을 날리고 나니까 Git에 대해 잘 모르고
쓰고 있었다는 것을 알았다. ( commit, pull, push 밖에 사용하지 않았기때문...)
따라서 오늘부터 Git에 대해 기본적인 것부터 공부하려고한다. 완전 파헤쳐보기 보단 필요한 개념들만 알아가보도록 하자.
Git이란?
- Git은 버전 관리 시스템이다.
예를 들면, 우리가 긴 레포트나 논문을 쓸 때, 한글 파일을 '201102448_사명기_미완성' -> '201102448_사명기_수정완료'
-> '201102448_사명기_진짜마지막' 이런식으로 여러 Version들로 저장하는 경우가 있다.
Git은 이런 경우에 하나의 파일만 만들고 변경사항만 저장, 관리하는 기능을 한다.
- Git은 버전 관리 외에도 Backup, Recovery, Collaboration 기능을 한다.
Backup : 소스코드를 백업해서 만약의 사태에 대비할 수 있다.
Recovery : 소스코드를 이전 상태(Version)으로 쉽게 돌아갈 수 있다.
Collaboration : 다른사람과 협업 할 수 잇다.
버전 관리란?
- 버전 관리 시스템은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
위의 Git 설명 예에서 레포트나 논문 작업을 완료하고 나서 '201102448_사명기_미완성'인 Version을 다시 꺼내 올 수 있다는 것이다.
- 버전 관리는 로컬 버전관리, 중앙집중식 버전관리, 분산 버전 관리 시스템이 있지만, 필자는 Git의 시스템인 '분산 버전 관리 시스템'만 소개하려고 한다.
분산 버전 관리 시스템
분산 버전 관리 시스템은 각 개발자가 중앙 서버에 접속하지 않은 상태에서도 코드 작업을 할 수 있다.
클라이언트가 원격 저장소 파일의 마지막 스냅샷을 가져오는 것이 아니라 저장소를 히스토리와 더불어 전부 복제한다. 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수 있다. 클라이언트 중에서 아무거나 골라도 서버를 복원할 수 있다.
추후에 git의 작동원리에 대해 자세히 다룰 예정입니다.
Git? Github? 뭐가 다른거지?
- Git은 위에서 말한대로 '버전 관리 시스템'이다.
Github는 Git 버전 관리 시스템을 위해 원격 저장소를 제공하는 git호스팅 서비스이다.
다음 글에서는 Window에서 Git 설치와 실습을 해보겠습니다!
'Git' 카테고리의 다른 글
Git을 시작해보자! <5편> (git 명령어들의 option) (0) | 2019.02.20 |
---|---|
Git을 시작해보자! <4편> (git reset,git revert) (0) | 2019.02.19 |
Git을 시작해보자! <3편> (git log, git diff) (0) | 2019.02.18 |
Git을 시작해보자! <2편> (add&commit) (0) | 2019.02.14 |
Git을 시작해보자! <1편> (init, add, commit) (0) | 2019.02.13 |