Git




사용하고 싶은데 사용하는게 어려워 보여서 못쓰는 사람들을 위해서 기록.

물론 자주 까먹는 나를 위해서 기록한다.


프로그래밍을 하다보면 git라는 말이 자주 보인다. "git을 사용해봐라", "git 쓸줄 아냐", "소스는 어떻게 관리하냐" 등등.. 하지만 정작 잘 모를것이다. 알고 싶지도 않을테니깐..


이 Git은 리눅스를 만든 리누스 토발즈가 기존 소스 관리 시스템 BitKeeper를 사용하다가 유료화 되면서 화가나서 Git을 만들어 버렸다. 리눅스 커널을 관리하기 위해 2주만에 만들었다고 한다. Git은 오픈소스이다. 그 누구도 자유롭게 사용이 가능하다. 이것이 개발되면서 많은 오픈소스가 엄청나게 활성화가 되었고 오픈소스는 사악하다고 비판하던 마이크로소프트 또한 Git을 사용한다고 한다.


그렇다면 이 Git을 굳이 사용할까? Git을 꼭 사용 할 필요는 없다. 자기가 만든 프로그램이 간단해서 소스를 알아서 관리 한다던가 소규모로 프로그램을 만든다면 말이다. 하지만 규모가 커지고 해당 프로젝트를 구성하는 인원이 많아지면 굉장히 골치 아파진다. 즉, Git을 사용하는 이유는 간단히 프로젝트의 소스를 관리 하기 위함이다.


그럼 Git이 탄생하기 전에 대규모 회사에서는 일일이 소스를 관리 했을까?

No! 아니다. 그 전에도 굉장히 많은 시스템이 있었다. 위키백과를 보면 알수있다. 아래의 표를 보자.



소스(버전)를 관리하는 프로그램은 정말 많다. 무려 제일 오래 된게 1972년도 이다. 물론 로컬 컴퓨터에서 구동되는 프로그램이지만, 저 때는 데니스리치가 Unix 운영체제를 위한 C언어를 만든 해이며, ATARI 사가 Pong을 출시 한 년도이다. Git은 로컬이아닌 분산 버전 관리 소프트웨어인데, 여기서 분산이라는 의미는 로컬, 중앙서버도 가능은 하지만 의존하지는 않는 다는 것이다. 컴퓨터 여러 대에 Git 소프트웨어를 설치해서 분산되어있지만 마치 한대에서 구동되는 것처럼 보이게도 할 수 있다는 것이다.


Git은 다양한 프로그래밍 언어들을 지원하며, 문서파일은 txt나 markdown이 많이 사용된다. OS또한 Unix, Linux, OS X, Windows 모두 지원한다. 현재 2018년에도 계속적으로 업데이트가 github.com/git 를 통해 진행되고 있다.


이제 Git이 무엇인지에 대해 알아보았다. 그렇다면 Github, Gitlab, Bitbucket은 무엇일까?



간단한다. 위에서 Git은 분산 버전 관리 소프트웨어라고 했다. 그 소프트웨어를 분산되게 여러 컴퓨터에 구성해두고 그 서비스를 사용자에게 제공 해주는 기업들이다. 웹호스팅과 비슷한 것이다. 자신 Git을 컴퓨터에 설치해서 주위 친구들을 외부에서 접속할 수 있게 해주는 것이다. 단지 저 기업들은 그런 서비스를 제공하고 돈을 받는 것이다. 

어! Github 무료 아닌가요?

No! 무료가 아니다. 단지 무료 등급을 사용하고 있을 뿐.. 다른 Gitlab, Bitbucket 또한 그렇다.

큰 특징을 보면 Github는 공개 프로젝트는 무료! / Gitlab, Bitbucket은 개인 프로젝트는 무료!

사용자 수, 오픈소스 프로젝트 수는 Github > Bitbucket > Gitlab 순이다. Github가 유명한 이유도 여기에 있다.


내가 생각하기에는 디자인, 한글지원, 깔끔함은 Gitlab > Bitbucket > Github 이다.

만약 처음 Git을 접한다면, 나 처럼 Gitlab을 사용하는 것도 좋을 듯하다.

나도 잠시 회사 다닐때 지식을 많이 가지신 분께서 알려주셨다. 그로 인해 Gitlab에 대해 처음 알게 되었다.


Git 그리고 Git을 이용하여 서비스를 제공해주는 Github, Bitbucket, Gitlab에 대해 알게 되었다.


그러면 어떻게 사용하는 것일까? 뭔지 만 알고 사용을 안해보는 것은 의미가 없는 일이다. 굉장히 많은 명령어가 있어서

엄청 헷갈린다. 리누스토발즈가 만든 리눅스도 처음 사용 할때 어려운 듯이 말이다.

마치 리눅스마스터를 공부 할때 처럼...


github 사이트에서 git 간편 안내서를 제공한다. 이것 또한 한글로 쉽게 나와있다.


리눅스에서의 Git


[Git 설치]


1
sudo apt install git
cs


1줄 : 우분투 계열에서는 위 명령어

레드햇 계열에서는 yum install git

아치 계열에서는 pacma -Ss git

윈도우는 https://github.com/git-for-windows/git/releases 에서 다운로드 후 설치


[git 복제(계정 설정, 외부에서 복제)]


1
2
3
4
git config --global user.name <git 사용자이름>
git config --global user.email <git 메일 주소>
git clone <git https 주소>
 
cs


1줄 : git 사용자 이름 설정 ("<>"는 그냥 표시하기 위함)

2줄 : git 사용자 이메일 설정

3줄 : 해당 주소의 git을 복제


[git 원격위치에서 불러오기]


1
git pull
cs


1줄 : clone에 사용되었던 주소로 부터 불러오기


[git 원격위치로 보내기]


1
2
3
git add .
git commit -"여기에 메모를 입력하세요.(커밋)"
git push origin master
cs


1줄 : 현재위치의 변경된 사항을 추가(반드시 뒤에 현재위치를 표시하는 dot가 있어야 함, 그래야 모든 수정된 모든 파일이 적용 됨)

2줄 : 커밋을 추가 합니다. 변경내용을 입력

3줄 : clone 에 사용되었던 주소로 제일 상위인 master 가지로 보냄


[git 변경사항 및 상태 보기]


1
git status
cs


1줄 : git의 변경된 상태




이 문서는 cybertramp(paran_son@outlook.com)가 작성하였습니다.