정말 오랜만에 들러서 포스팅을 하는 것 같다.


한동안 공부만 하고 정리를 안했더니 도저히 감당이 안된다..


각설은 그만하고, Git 이란 무엇인가? 먼저 살펴볼 필요가 있어 보인다.







Git 이란 프로그램 등의 소스코드 관리를 위한 분산 버전 관리 시스템이다. 라고 적혀있다.

출처 위키 : https://ko.wikipedia.org/wiki/%EA%B9%83_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)



그럼 분산 버전 관리 시스템이란 무엇인가 ?


버전관리란 ?

출처 위키 : https://ko.wikipedia.org/wiki/%EB%B2%84%EC%A0%84_%EA%B4%80%EB%A6%AC



간단하게 말을 하자면 버전 별로 관리를 해주는 프로그램이다. 라고 할 수 있을 것 같다.


하나의 프로그램에도 여러가지 기능을 추가하고 덧대다 보면 버전이 높아진다.


게임을 보더라도 그렇다. 대규모 업데이트가 이뤄지게 된다면 게임의 버전이 높아지지 않는가?


이와 같은 맥락이다.


당연히, 게임에만 적용되는게 아닌 여러가지에 전부 개념을 적용시킬 수 있다.



그렇다면 이 Git 이란 것이 무엇인가 더 살펴볼 필요가 있겠다.


자세한 내용을 보기 위해 영문 위키를 살펴보면

https://en.wikipedia.org/wiki/Git



리눅스의 창시자라고 불리우는 리누즈 토발즈가 만든 커널 버전 관리를 위해 만든 툴이라고 할 수 있다.


이 Git이란 걸 간단하게 보면 동일 파일을 수정하더라도, 버전별로 파일의 내용이 달라질 수 있다.

(일기장을 예로 들면 하루마다 일기가 추가되지 않는가 ?)


Git은 위와 같은 작업 파일들의 변화를 추적해준다.





이게 왜 좋은걸까 ?



다른 사람들과 협업을 할 때, 기능 추가라던지 기능 수정 등의 작업을 할 때

잘못 수정하여 버그가 생긴다던가, 빌드조차 안되는 경우가 있을 수 있고

이전버전으로 되돌아 간다던가, 실험적인 기능 추가 등등...

여러가지의 경우가 있겠지 ?


Git 은 이런 특성에 맞게 잘 만들어져 있다.


협업 시 작업 파일의 변화를 추적해주고, 각각의 작업들을 동기화를 해줄 수 있다.


물론, 오픈소스이며 Git 의 사용은 자유!









Git 이란게 뭔지 대충은 알겠는데 ...


그럼 Github, Gitlab, Bitbucket 등은 무슨 기능을 하는걸까 ?





한마디로 정의하면, 저장소라고 말할 수 있다.




Git 이란 프로그램을 통해 작업 파일들의 버전을 관리 한다고 말했는데,

버전들에 대한 정보를 저장할 저장소가 필요하지 않겠는가?


물론, 로컬에만 저장이 가능하긴 하다.


하지만 협업 시 USB 에 담아서 주고 받기는 너무 불편하지 않은가...? (그럴거면 Git은 왜써 !!!)


그래서 공통된 하나의 저장소를 만들고, 로컬의 버전들과 저장소의 버전들 동기화 해주며 작업하는 것이다.



저장소에는 public, private 두가지 형태의 저장소가 제공이 되는데


단어 그대로 public공개 저장소, private비공개 저장소를 뜻한다.



각 서비스 별로 라이센스가 다르다.


Github 의 경우 public 은 무료이지만, private 의 경우는 매달 결제를 해야 사용할 수 있다.


마찬가지로 Gitlab, Bitbucket 각각 조건이 다르다.



공홈에 가보기만 해도 각각 나오니 직접 확인 해보길 바란다!







'Programing > Basic' 카테고리의 다른 글

문자 인코딩  (0) 2016.01.15
기초) 컴퓨터 구조  (0) 2015.09.25
네트워크의 정의  (0) 2015.09.24

+ Recent posts