Git

About Git

포마드시메오네 2017. 7. 23. 21:49

git

noun [ C ] UK   /ɡɪt/ US   /ɡɪt/ uk informal

personespecially a man, who is stupid or unpleasant:

You stupid lying git!

He's a miserable old git.




a mild pejorative with origins in British English for an unpleasant, silly, incompetent, stupid, annoying, senile, elderly or childish person.

영국 속어로 멍청이.




그냥 사전적인 의미로는 이렇고,,,


우리가 알아볼 Git은 버전관리 시스템의 Git이다. Git 사이트에서 설명하는 Git은 이렇다.




Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git is easy to learn and has a tiny footprint with lightning fast performance.
It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Git은 작은 프로젝트부터 큰 프로젝트까지 빠르고 효율적으로 관리할 수 있게 해주는 오픈소스 분산 버전 관리 시스템이다.
Git은 배우기 쉽고 큰 공간을 차지하지 않아 빠른 속도를 자랑합니다.
Git은 저렴한 local branching과 편리한 staging area, 다양한 작업흐름을 가지기 때문에 형상관리시스템(SCM) 툴인 Subversion, CVS, Perforce, ClearCase 보다 더 뛰어나다.


즉,,,git은

version control system (VCS) for tracking changes in computer files and coordinating work on those files among multiple people.

버전 관리 시스템 + 협업




여기서,

SCM, VCS, SVN 이런 용어들이 나오는데 비슷해보여서 헷갈리는 것이지, 그 뜻을 찾아보면 금방 이해가 갈 것이다.


SCM is Software Configuration Management and SVN(Subversion) is a Version Control System tool, which is a subset of SCM.
VCS are also called Revision Control.
Git, Mercurial are also VCS tools ( Distributed VCS to be more specific.)

SCM은 형상관리 시스템 혹은 구성관리 시스템이고,
SVN은 Subversion이라는 버전관리 시스템 툴이다. SVN은 SCM의 부분집합이다.

Subversion
SVN으로도 불리는 형상관리 시스템
2000콜랩넷에서 개발
TortoiseSVN 유명


#Version Management(버전관리)

버저닝을 통해 프로그램의 변경사항을 체크하고 관리하는 것

#Configuration Management(형상관리)
      Version Management + 프로젝트 진행상황까지 관리


참고)

Configuration management includes, but is not limited to, version control.

Configuration management is everything that you need to manage in terms of a project. This includes software, hardware, tests, documentation, release management, and more. It identifies every end-user component and tracks every proposed and approved change to it from Day 1 of the project to the day the project ends.

Version control is specifically applied to computer files. This includes documents, spreadsheets, emails, source code, and more.


Version control is saving files and keeping different versions of them, so you can see the change over time.

Configuration management is generally referred to as an overall process of which keeps track of what version of the code is on what server, how the servers are setup (and the install scripts to do so at many places). It is how process of what happens after the code goes into source control and how gets to deployed to the servers/desktops etc.




Git의 탄생배경인데,,,리누스 토발즈는

Linux Kernal 만들기 위해 Subversion 쓰다 화가 나서 2주동안 git이라는 버전관리 시스템을 만들었다고 한다.

#SVN

중앙집중식

오프라인 작업 불가

#Git

분산 소스코드 관리

오프라인 작업 가능


빠른속도
단순한 구조

분산형 저장소 지원

비선형적 개발(수천개의 브랜치가능




Github은 분산 버전 관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다.
루비 온 레일스로 작성되었다.
Github은 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다.
2009년의 Git 사용자 조사에 따르면 Github은 가장 인기있는 Git 호스팅 사이트이다.
또한 2011년의 조사에서는 가장 인기있는 오픈 소스 코드 저장소로 꼽혔다.


착각하지 말아야 할 사실은,

Git != Github



https://brew.sh/index_ko.html

Git for Mac


https://git-scm.com/

Install git


// MacOS

$ brew install git

// Linux

$ sudo apt-get install git


$ git --version 으로 정상적으로 설치되었는지를 확인