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 설치와 실습을 해보겠습니다!



+ Recent posts