GIT을
사용한지 어언
1년이 다 되어가지만, 정작 내
자신이 GIT에
대해서 아는
것이 별로 없다고
생각되는 어느
5월의 나른한 오후에
번뜩 GIT 매뉴얼을
만들어 보자라는
생각을 하게
되었다.
GIT
매뉴얼의 한글화 작업에 대한 의무감때문이 아니라, 내 자신이 좀더 GIT 의 사용법에 대해서 익숙해 지는 좋은 계기가 될 것이라는 생각때문에 작성하게 된 포스팅이다.
GIT
은 리누스 토발즈가 Linux 소스를 관리하기 위해서 만든 소스 버전 관리 프로그램이다.
이미 한국이
아닌 외국에서는 많이
쓰이지만, 유독
한국에서만 잘
쓰이지 않는
것 같다.
GIT
을 버전 관리로 채택하여 사용하는 대표적인 프로젝트에는 아래과 같은 프로젝트가 있다.
|
1. GIT 2. Linux Kernel 3. Perl 4. Eclipse 5. Gnome 6. KDE 7. Qt 8. Ruby on Rails 9. Android 10. PostgreSQL 11. Debian 12. X.org |
GIT은 무료이자, 오픈 소스이며
분산 버전
관리 시스템으로서, 속도와 효율이
우수하고,
작은 프로젝트부터 큰
프로젝트에 이르기까지
다양하게 사용할
수 있도록 디자인
되었다.
모든 Git clone 들은 full-fledged repository 로서 모든
history 와 revision 추적기능, 중앙
서버로부터 의존적이지
않는 특성을
가지고 있다.
Branch 를 나누는 것과 합치는 것이 매우 빠르고 쉽다는
장점도 있다.
Git
은
Mercurial, Bazaar, Subversion, CVS, Perforce, Visual SourceSafe 툴과 같이 파일에 대한 버전 관리에 사용된다.
현재 GIT 프로그램은 Windows, Mac OSX, 기타
Linux 시스템을 위하여(Binary,
Source) 로 제공이
된다.
Windows,
Mac OSX 용 GIT 프로그램은 Google 에서 배포하고 있다.
GIT 은 크게 아래와 같은 특징을 가지고
있다.
|
1. Distributed development - 대부분의 다른 최근의 버전관리 시스템과 깉이, Git 은 전체 개발 history 정보를 가지고 있는 local copy를 개발자에게 제공하고, 변경된 이력은 한 repository(저장소) 에서 다른 곳으로 복사 된다.이러한 변경이력은 추가적인 개발 branch로 import 되며, 이렇게 import 한 branch 는 local 에서 개발한 branch 와 같은 방식으로 병합할 수 있다. Repository 들은 Git 프로토콜 혹은 단순히 HTTP 프로토콜을 사용하여 접근할 수 있다. |
|
2. Strong support for non-linear
development - Git 은 빠르고 편한 branch 와 merge 기능을 지원하고, non-linear 한 개발 이력을 시각화 하고 탐색할 수 있는 강력한 툴(gitk) 을 제공한다. |
|
3. Efficient handling of large projects - Git 은 매우 빠르고, 특히나 크고 history 내역이 긴 프로젝트에 매우 잘 작동한다. 보통 다른 버전 관리 시스템보다 빠르고 특정 작업은 더 빠르다. Git 은 다른 오픈소스 버전 컨트롤 시스템보다 효율적인 revision 관리를 수행한다. |
|
4. Cryptographic authentication of history - Git
history 는 revision 이라는 특수한 이름으로 저장된다.
(Git 용어로는
"commit") 이 revision 은 그
commit 까지의 완전한 개발 history 에 의존한다.
Revision 이 일단 만들어지면, 오래된 버전의 revision 은 통지 없이는 변경할 수 없다.
또한
tag 들은 암호화 되어 저장이 된다. |
|
5. Toolkit design - Unix 관례를 따라서 Git 은 C 언어로 작성된 많은 작은 Tool 들의 집합체이다. 그리고 많은 수의 script 들이 이러한 기능을 수행하도록 도와준다. Git 은 개발자가 사용하기 쉽도록, 그리고, 새로운 기능을 수행할 수 있도록 script 작성을 쉽게 하기 위해 tool 들을 제공한다.
|
여기서 개인적인
의견을 내놓자면,
Git 은 기타 다른
버전 관리 툴(Subversion, CVS) 과는
달리 중앙 서버에
의존하지 않고 개발자 개개인이 자유롭게 변경이력을 관리할 수 있다는 장점이 나에게는 가장 큰 매력이었다.
또한, gitk 라는
강력한 GUI 를
제공하여, 소스
트리의 변경
내역과 Branch 들, tag 들을 한
눈에 살펴 볼
수 있는 편리한
개발 환경을 제공한다는
것이 참 좋았다.
또한 경험상, Subversion 이나
CVS 보다 훨씬 빠르다는
생각이 든다.
물론 GIT 이
소스 버전관리 툴로서
제일 좋다는 생각은
어디까지나 개인적인
생각이고, 기타
툴들도 나름의
장점을 가지고
있다고 생각한다.
하지만 내가
개발하는 환경에서는
GIT 이 가장 좋은
소스 버전 관리
툴이라고 생각한다.
무엇보다 Linux 의
아버지 Linus Torvalds 가
만든 프로그램이라는 사실이
더욱 더 믿음이
가게 해 준다. :)
'Programming > Git' 카테고리의 다른 글
| 6. Git Repository (저장소) 를 얻어오기 (0) | 2011.07.03 |
|---|---|
| 5. Git 도움말 얻기 (0) | 2011.07.03 |
| 4. Git 설정하기 (0) | 2011.07.03 |
| 3. Git 설치하기 (0) | 2011.07.03 |
| 2. Git 의 간단한 역사 (0) | 2011.07.03 |