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 |