2016. 11. 16. 23:11
https://blog.naver.com/nagne2011/220863510276
개발툴 - 0 - Git
Git은 '리누스 토르발스'가 개발한 준산형 버전 관리 프로그램이다 버전관리 프로그램이란, 오픈소스등을 ...
blog.naver.com
Git은 '리누스 토르발스'가 개발한 준산형 버전 관리 프로그램이다
버전관리 프로그램이란, 오픈소스등을 여러명이서 개발할때 각자의 독립적인 작업때문에 개발이 꼬일수가 있는데
이러한 환경에 맞게 제작된 툴이다
(자세한건 https://namu.wiki/w/Git 에서 알아보도록하자 항목중에 사용법을 가르쳐주는 사이트 링크도 많이 있으니 참고하도록 하자)
버전관리 프로그램으로 Git외에도 SVN등 다양한 프로그램이 있지만,
접근성이 편하고 빠른속도와 분산형 저장소 지원이 가능하다는 특징이 있다
....라는건 사전적인 설명이고,
대략적인 원리는 매우 간단하다
GitBucket이나 GitHub같은 Git저장소에 master 소스를 저장해두고
SourceTree나 SVN등의 프로그램을 이용하거나 직접 명령어를 콘솔로 입력하여 master소스의 Clone을 내려받아(pulling) 수정(commit)한뒤 Pushing을 통해서 master소스에 덮어씌우는 방식이다
물론 몇가지 규칙이 존재한다
어떠한 내용이 어떻게 바뀌었는지에 대한 '기준'을 사용자가 직접 지정해야 하며
master 소스에서 내려받은 복사본(clone)은 서버가 아닌 Local에 저장되며 pushing 작업을 통해서 서버로 접근하여야 한다
그러나 이럴경우엔 어디를 어떻게 수정했는지, 뭐가 바뀌었는지 등에 대한걸 모두 알고있어야하고
만약 같은 부분을 여러명이 동시에 수정했을경우 누구의 코드가 옳은지에 대한 '충돌'이 발생할 수 있다
예를들어 개발자A는 HP를 10으로 설정했는데, 옆자리에서 작업중이던 개발자B가 HP를 20으로 설정해버린 경우 충돌이 나는것이다
그렇다고 개발할때마다 서로 작업내용을 공유하면서 할수는 없는노릇이다
Git은 이러한 충돌을 확인해서 같은곳을 수정하는 '충돌'이 발생할 경우 해당 지점을 표시해준다
그리고 master소스에 접근하는걸 막는다
충돌이 발생할 경우 해당 내용을 작성한 개발자는 어느 소스를 사용할 것인가에 대해 조율한뒤 수정사항을 만들어야 maste소스에 접근이 가능하다
그러나 이렇게 보호를 해줘도, 계속해서 수정에 수정을 거듭하다보면 master 소스가 흉측하게 변하게 될수밖에 없다
그래서 master 소스를 유지하고, 거기다 수정이나 기능추가 등을 더욱 효과적으로 작업할 수 있도록 하기 위해
Brance 기능을 사용할 수 있다
Brance 기능은 말그대로 master 소스라는 '줄기'에서 '가지'를 뻗는 방식이다
기존의 master소스를 복사하여 git저장소 안에 master 소스의 클론을 만든뒤 그 클론을 master소스처럼 사용하는 방식이다
이때 brance는 master소스와는 완전 독립적으로 존재하며,
삭제할수도 있고 다시 master 소스에 덮어씌울 수도 있다
즉, 개발자들은 master 소스에 직접적인 접근을 최소화 하면서
가지(brance)를 쳐서 master 소스를 복사한뒤 그곳에 접근하는 방식이다
이러한 방법을 이용하면 master 소스를 최대한 원형에 가깝게 유지하며 꼭 필요한 수정사항만 적용 시킬 수 있다
'개발공부' 카테고리의 다른 글
이진탐색 - Binary Search (0) | 2022.02.15 |
---|---|
개발툴 - 1 - BitBucket (0) | 2022.02.15 |
예외처리 try, catch, throw (0) | 2022.02.14 |
c# XML 저장 불러오기 (0) | 2022.02.13 |
c# 텍스트 저장 (0) | 2022.02.13 |