Dev Tools/Git | Github

[Git] 깃의 탄생배경, 사용하는 이유 및 간단한 사용법

Bans 2022. 7. 6. 09:58

 

간단하게 살펴보는 Git의 역사


 

git 은 Linux 운영체제의 개발 과정에서 탄생했다

 

git은 Linux의 아버지 Linus Torvals가

Linux 를 개발하며 리눅스의 버전 관리를 위해 사용하던 툴(BitKeeper)의 유료화로 인해

리눅스의 개발 이념에 반대되는 것에 분개(?)하여

 

리누스 토발즈 본인이 직접 2주만에 만들어버린 역사가 있는 도구이다.

(git은 지금도 git으로 버전관리가 이루어지고 있으며, github(여기)에서 이 기록을 열람할 수 있다)

 

git 공식 doc 내의 짧은 역사

 

git 제작자가 git에 남긴 최초의 commit 은 아래와 같다

GIT - the stupid content tracker

"git" can mean anything, depending on your mood.

- random three-letter combination that is pronounceable,
and not actually used by any common UNIX command.
The fact that it is a mispronounciation of "get" may or may not be relevant.

- stupid. contemptible and despicable. simple.
Take your pick from the dictionary of slang.

- "global information tracker": you're in a good mood, and it actually works for you.
Angels sing, and a light suddenly fills the room.

- "goddamn idiotic truckload of sh*t": when it breaks

git 최초의 커밋 - README 의 첫 시작부분

실제보다 과격하게 번역되었긴 하지만, 억양은 비슷하다

 

 

아래의 짧은 영상으로 리누스 토발즈의 호탕함(?)을 엿볼 수 있다.

 

https://youtu.be/_36yNWw_07g

Linux 를 지원하지 않는 nvidia 에게 Linus torvals가 보인 리액션 (2012)

 

참고 : 지옥에서 온 관리자 - git의 최초 커밋

https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290

 

Initial revision of "git", the information manager from hell · git/git@e83c516

Show file tree Hide file tree Showing 11 changed files with 1,244 additions and 0 deletions.

github.com


 

위와 같은 개발 비화가 있는 버전 관리 도구이지만

이 도구의 핵심은 다음과 같다.

 

  1. 빠른 속도와 단순한 구조
  2. 비 선형적 개발환경 ( 수천개의 동시 다발적인 branch )
  3. 완벽한 분산
  4. 속도 및 데이터 크기 면에서 Linux 커널과 같은 대형 프로젝트에도 대응할 것

 

다양한 사람들이 참여한 Linux 커널의 특징과 개발 과정을 생각해본다면,

어렴풋이 git의 목적성과 그 사용 이유를 유추해볼 수 있다.

 


Git - 버전 관리 시스템

'버전 관리' 란 '버전의 기록' 을 남겨서 바뀌어 온 과정을 확인할 수 있도록 하는 것이며,

[ 버전 관리 시스템(VCS - Version Control System) ] 버전의 변화 과정을

쉽게 비교하고 백업하기 용이하게 시스템화 한 것이라고 볼 수 있다. ---> git

 

최종보스를 만나기까지의 흔한 과정.. 이것도 버전관리다

 

우리는 git을 만나기 이전에도, 파일을 관리하며 본능적으로(?) 파일의 버전관리를 해 왔다.

 

git은 우리가 해 온 버전관리를 시스템화 하여 변경 내역을 쉽게 확인할 수 있게, 프로젝트의 버전 기록을 수월하게,

빠르게 / 비선형적이며 동시다발적이게 / 분산하여

데이터를 관리할 수 있게 한 도구이다.

 

vscode 편집기에선 git을 사용하여 버전관리하는 파일의 변경 내역을 쉽게 비교할 수 있다.

 


간단한 사용방법은 다음과 같다.

(우선 본인의 로컬 작업 환경에 설치부터 하자.. 여러 방법이 있지만 (여기)를 들어가 운영체제에 맞게 다운로드를 진행한다)

 

1. 작업하고 있는 프로젝트의 저장 공간에 git 을 사용하겠다 선언하기

> git init

빈 디렉토리 생성 후 git init을 한 모습. 'master' branch 의 표시가 생겼다.

2. 작업물 생성 및 commit 하기

> 작업물 생성 (프로젝트 버전 변경)

> git status

test.txt 를 작성하여 git status 를 통해 현재 상태를 볼 수 있다. 이제 곧 git add . 실행직전

> git add <파일>...

> git commit -m "커밋 내용 작성"

 

commit은 git을 이용한 버전 관리의 최소 단위이다. master* 와 master 의 차이가 보이는가?

 

자! 이것으로

당신의 프로젝트 폴더는

'add test.txt file' 이라는 'commit' 을 기준으로

버전이 나뉘어 버전관리가 시작되었다!

 

git --help // 이 외에도 git으로 다양한 작업을 진행할 수 있다.


위의 git --help 이후의 메시지에서도 볼 수 있듯

git이 제공하는 버전 관리 도구들은 무궁무진하다.

 

필요한 내용을 그 때 그 때 공식 문서에서 참고하여 사용하는

참된 개발자(공식문서 잘 보면 그게 제일 참된 개발자)가 되도록 하자!

 

 

참고 : Git  공식 Documentation - https://git-scm.com/book/ko/v2
 

Git - Book

 

git-scm.com