앞에서 Git Server 를 두고 그곳에서 소스를 받아오고 작업한 내용을 넣는 것을 살짝 살펴보았다.
Git을 소개할 때 항상 나오는 "분산 관리", 그에 따라 나오는 이야기는 바로 "복제"이다.
무슨 말인고 하니, 서버와 클라이언트 모두 똑같은 데이터를 가진다는 점을 특징으로 한다고 한다!
기존의 서버-클라이언트 구조인 Subversion 등과는 달리,
Git은 서버와 클라이언트 개념이 없이 모두 같은 데이터를 가지고 동등한 입장이라고들 말한다.
하지만, 이 이야기로 인하여 Git에 대한 많은 오해가 있고, 또 괜히 어려워 하게 되는 것 같다.
분산 관리 도구인 Git이지만,
형상관리 도구의 특성상 분명히 기본적인 구조는 "서버-클라이언트"이다.
즉, 최종적인 결과물을 저장하는 서버의 역할을 하는 repository는 분명히 존재한다.
그 외 clone을 받아간 repository는 모두 클라이언트 이다.
clone을 -bare 형식으로 하여 Server 역할을 할 수 있는 repository를 만들었더라도
전체 구조에서는 어디까지나 클라이언트의 역할이다.
말 장난같이 들릴지 모르겠지만, 위의 사항에 대해서는 잘 이해를 하였으면 좋겠다.
전체적인 흐름은 위와 같다.
- Remote repository에서 'git clone'을 통해 소스를 받아오고
- 소스 수정 작업을 한 뒤에
- 'git add'를 통해 staged 상태로 만든 뒤
- 'git commit'을 하고나서
- 변경 사항을 'git push'를 통해 Remote repository로 넣어준다.
이 부분에 대해서 뭔가 말할 거리가 많다고 생각했는데,
막상 적다보니 짧은거 같아서 뭔가 조금 찜찜(?)한데.... 뭐 할 말은 다 한 것 같다!
빼먹은 부분이 있으면 나중에 다시 더 추가하도록 하고...
최신 트랜드에 따르기 위해서 요즘 유행한다는 인후염을 겪고 있다보니 헥헥....
반응형
'SCM > Git-GitHub' 카테고리의 다른 글
Remote - remote, fetch, pull (0) | 2012.03.19 |
---|---|
업데이트 - git pull, 중간 정리 (0) | 2012.03.17 |
Git Server - push + 한글 (1) | 2012.02.26 |
Git Server - Remote Connect (0) | 2012.02.25 |
Git Server - SSH (2) | 2012.02.23 |